分析问题
除了第一行和最后一行,我们会发现出现*号的位置,设定 行为i 列为j 5行5列的Z
如果
i =1或i=5, j 从1至5 ,画5个*
否则
i=2时,只有j=4,画*号,其它画空格
i=3时,只有j=3,画*号,其它画空格
i=4时,只有j=2,画*号,其它画空格
观察否则后的,i和j 变量之间的变化,不难发现,它们的和都是6,即抽象出 j=n+1-i
建立模型
输入一个数字 n //number 缩写
从i等于1 输出n行
从j=1输出n列
如果i=1 或 i=n ,j从1至n全部输出 *号
否则(嵌套判断)
如果j=n+1-i 输出*;否则 输出空格
编写代码
#include <bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
for (int i = 1; i <= n; i++)
{
for(int j=1;j<=n;j++){
if(i==1 || i==n){
cout<<"*";
}else{
if(j==n+1-i){
cout<<"*";
}else{
cout<<" ";
}
}
}
cout<<"\n";
}
return 0;
}