1 条题解
-
0
C++ :
#include <bits/stdc++.h> using namespace std; int n,a[10][10]; //k表示赋值第k个斜边,t表示要赋值的起始值 //x y表示要赋值的起始位置 void fun(int k,int t,int x,int y){ //递归出口 if(x <= n && y <= n){ //第奇数斜边,向右上 if(k % 2 == 1){ //如果在矩阵中 while(x >= 1 && y <= n){ a[x][y] = t; x--; y++; t++; } x++;y--; }else{ //向左下 while(x <= n && y >= 1){ a[x][y] = t; x++; y--; t++; } x--;y++; } //k<n奇数向右,偶数向下 if(k<n){ if(k % 2 == 1){ fun(k+1,t,x,y+1); }else{ fun(k+1,t,x+1,y); } }else{ //否则偶数向右,奇数向下 if(k % 2 == 0){ fun(k+1,t,x,y+1); }else{ fun(k+1,t,x+1,y); } } } } int main(){ int i,j; cin>>n; fun(1,1,1,1); for(i = 1;i <= n;i++){ for(j = 1;j <= n;j++){ cout<<setw(5)<<a[i][j]; } cout<<endl; } return 0; }
- 1
信息
- ID
- 2302
- 时间
- 1000ms
- 内存
- 64MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者