输出方阵
输入一个整数,输出n*n矩阵
输出数字范围为1到n*n,
可以看做一个一个正方形边框放置而成,边框长度为n
每一个正方形框的长度为
n为偶数时 4+4*(n-2)
n为奇数时 1+4*(n-2)
代码如下:

#include<iostream> using namespace std; int main() { int n; while(cin>>n){ int a[n+1][n+1]; int x,y; int num=1; for(int i=n;i>0;i=i-2){ int t=(n-i)/2; // cout<<"t="<<t<<endl; x=y=t+1; if(i==1){ a[x][x]=num++; break; } //cout<<"i="<<i<<endl; for(;y<=(n-t);y++) a[x][y]=num++; y--; // cout<<"y="<<y<<endl; x++; // cout<<"x="<<x<<endl; for(;x<=(n-t);x++) a[x][y]=num++; x--; y--; // cout<<"y "<<y<<endl; for(;y>=(t+1);y--) a[x][y]=num++; y++; x--; // cout<<"x"<<x<<endl; for(;x>(t+1);x--) a[x][y]=num++; } for(int i=1;i<=n;i++){ for(int j=1;j<=n;j++) cout<<a[i][j]<<" "; cout<<endl; } } }
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步