网上有各种找规律的解法,我贴出我暴力模拟法
#include <iostream>
#include <stdlib.h>
#include <stdio.h>
#include <cstring>
int arr[21][21];
using namespace std;
int main(){
memset(arr, 0, sizeof arr);
int start = 1;
int i = 0,j = 0;
int dire = 1;
while(i != 20 || j != 20){
arr[i][j] = start++;
if(dire == 1){
if(i == 0){
j++;
dire = 2;
}else{
i--;
j++;
}
}else{
if(j == 0){
i++;
dire = 1;
}else{
i++;
j--;
}
}
}
cout << arr[19][19] << endl;
for(int i = 0;i < 20;i++){
for(int j = 0;j < 20;j++){
printf("%4d",arr[i][j]);
}
cout << endl;
}
return 0;
}