蓝桥题库每日一练 · 2026.09.23
9月23日 输入一个 3~20 之间的正整数 N,输出一个由…
输入一个 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 生成,请谨慎使用。
难度依赛考组别及等考级别粗略评估,仅供参考。