求助,第四个没过,可是范围是不超过9,一个个测试输了可是都对
查看原帖
求助,第四个没过,可是范围是不超过9,一个个测试输了可是都对
877089
ycyy楼主2023/8/13 11:40
#include<iostream>
using namespace std;
int main(){
    int n;
    int m=0;
    cin>>n;
    if(n==0){cout<<0<<endl<<endl<<0;}//等于零时
    else{
    for(int i=0;i<n;i++){
        for(int j=0;j<n;j++){
            m++;
            if(m<10){
                cout<<"0"<<m;
            }
            else cout<<m;
        }
        cout<<endl;
    }
    cout<<endl;
//上面是正方形


    m=0;
   int p=n;
   int r=0;//代表每次循环的空格数
   int h;
    for(int i=0;i<n;i++){
        int k=n-1;//当等于n-1,符合循环次数
        r=0;
        h=p;//因为一开始第一行就一个数字,所以p直接赋给h,从而打印出p-1个空格
        for(;k>0;){//k代表数字的数量,有几个就循环打印几次
            m++;
            while((--h)>0){
                cout<<"  ";
                r++;//r每次加一,代表多一个空格,
            }
            if(m<10){cout<<"0"<<m;}
            else {cout<<m;}
             k=n-r;//一行一共有n个,n减去r(空格的数量)就是数字的数量,
             k--;//无论while是否执行,都会内循环一次都会输出数字,也要减一
             r++;//因为while循环停止后,r和、不会再加,导致k不变死循环,于是每次循环再加个一
        }
        cout<<endl;
        p-=1;//因为行每次循环一次空格就少一,所以p赋值给h,使其打印出的空格每次都少一
      
    }
    }
    return 0;
}
2023/8/13 11:40
加载中...