@[chenqile](/user/953664)
给你改了改,你自己比照吧,你这个差太多了,连换行都没有。
```cpp
#include <cstdio>
int main(){
int a;
scanf("%d", &a);
for (int i = 0; i < a; i++){
for (int j = 0; j < a; j++){
int f = i * a + j + 1;
if (f <= 9) printf("0");
printf("%d", f);
}
putchar(10);
}
putchar(10);
int k = 1;
for (int i = 0; i < a; i++){
for (int j = 0; j < a - i - 1; j++){
printf(" ");
}
for (int j = a - i - 1; j < a; j++){
if (k <= 9) printf("0");
printf("%d", k);
k++;
}
putchar(10);
}
return 0;
}
```
题解好像讲得不是很精简,你可以瞅瞅我的
```cpp
#include<cstdio>
int main()
{
int n,i,j,k;
scanf("%d",&n);
for(i=0;i<n;i++,putchar(10))
for(j=1;j<=n;j++)
printf("%02d",n*i+j);
putchar(10);
for(i=0,k=1;i<n;i++,putchar(10))
for(j=1;j<=n;j++)
if(j>=n-i)printf("%02d",k++);
else printf(" ");
return 0;
}
```
by Terrible @ 2023-07-27 18:33:02
### 也可以这样
```
#include<bits/stdc++.h>
using namespace std;
int main(){
int n;
cin>>n;
int a[n+5][n+5],b[n+5][n+5],c[n+5][n+5];
int cnt=(n+1)*n/2;
for(int i=1;i<=n;i++){
for(int j=n;j>=i;j--){
a[i][j]=cnt;
cnt--;
}
}
int sum=1;
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if(sum<10){
cout<<0;
}
cout<<sum;
sum++;
}
cout<<endl;
}
cout<<endl;
for(int i=1;i<=n;i++){
for(int j=i;j<=n;j++){
b[i][j]=a[i][j];
}
}
for(int i=n;i>=1;i--){
for(int j=n;j>=i;j--){
c[i][j]=b[i][j];
}
}
for(int i=n;i>=1;i--){
int tot=i-1;
if(tot!=0){
for(int k=1;k<=tot;k++){
cout<<" ";
}
}
for(int j=i;j<=n;j++){
if(c[i][j]<10){
cout<<0;
}
cout<<c[i][j];
}
cout<<endl;
}
return 0;
}
```
by huangmingyisunny1804 @ 2023-08-03 10:43:10
![](//图.tk/5)
by jasonshen_ @ 2023-08-10 10:00:25