放大的Z

分析问题

除了第一行和最后一行,我们会发现出现*号的位置,设定 行为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;
}

保存 编译 运行