摘要
题目链接 |
难度等级 |
完成状态 |
完成分数 |
最后编辑时间 |
需要注意
|
蛇形矩阵
|
★☆☆☆☆
|
答案正确
|
100
|
2014/08/16 20:01:00
|
无
|
题意
输出n*n的蛇形矩阵及其对角线之和。
题解
欸,纯模拟了。
很明显从最中间到最右下角一列是完全平方数,然后从这里入手一圈一圈填表。填完表输出,顺带处理下对角线求和就好了。
瞄了一眼评论区看到个打表的十分无奈。(点头)嗯,打表是个好方法!
代码
1160.cpp代码已折叠
展开折叠内容
|
- #include<cstdio>
- int main(){
- int n,u[200][200],x,y,i,j,t,s=0;
- scanf("%d",&n);
- for(i=n/2+1,t=1;i<=n;++i,t+=2){
- u[i][i]=t*t;
- x=y=i;
- while(y>i-t+1)
- --y,u[x][y]=u[x][y+1]-1;
- while(x>i-t+1)
- --x,u[x][y]=u[x+1][y]-1;
- while(y<i)
- ++y,u[x][y]=u[x][y-1]-1;
- while(x<i-1)
- ++x,u[x][y]=u[x-1][y]-1;
- }
- for(i=1;i<=n;++i){
- for(j=1;j<=n;++j){
- printf("%d ",u[i][j]);
- s+=((i==j||i+j==n+1)?u[i][j]:0);
- }
- printf("\n");
- }
- printf("%d",s);
- return 0;
- }
|
链接