蓝桥题库每日一练 · 2026.09.23

9月23日 输入一个 3~20 之间的正整数 N,输出一个由…

C++编程题参考难度 ★★★☆☆蓝桥杯第十一届 选拔赛 · 已用
输入一个 3~20 之间的正整数 N,输出一个由「*」组成的居中金字塔:第 1 行 1 个「*」、第 2 行 3 个、第 3 行 5 个……第 i 行 (2i−1) 个,整体左右对称(见样例)。
样例
输入 5输出 * *** ***** ******* *********
评分标准
  • 20 分:行数符合要求
  • 50 分:每行的「*」个数符合要求
  • 100 分:图形左右对称、完全符合要求
参考解法
这是一座星号金字塔,要用「循环套循环」来搭:外层循环管「第几行」,内层循环管「这一行打什么」。

看清每行的规律(第 i 行):
· 星号个数:1、3、5、7……就是 2i−1 个;
· 前面的空格:要让金字塔居中对称,第 i 行前面得留 N−i 个空格,把这一行往右推到正中间。

所以每行分两段打:先打 N−i 个空格,再打 2i−1 个星号,然后换行。

#include <bits/stdc++.h>
using namespace std;
int main(){
    int n; cin >> n;
    for(int i = 1; i <= n; i++){
        for(int j = 0; j < n-i; j++) cout << " ";   // 前导空格……

看此题详解,练更多题目,进入蓝桥题库每日一练 →

此答案或解析由 AI 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。