NYOJ33: 蛇形填数【规律】

来源:互联网 发布:dota2淘宝买饰品 编辑:程序博客网 时间:2024/04/29 11:19

蛇形填数

时间限制:3000 ms  |  内存限制:65535 KB
难度:3
描述
在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:
10 11 12 1
9 16 13 2
8 15 14 3
7 6 5 4
输入
直接输入方陈的维数,即n的值。(n<=100)
输出
输出结果是蛇形方陈。
样例输入
3
样例输出
7 8 16 9 25 4 3
AC-code:
#include<cstdio>#include<iostream>#include<cstring>using namespace std;int main(){int n,s[105][105],x,y,count=1;;scanf("%d",&n);x=-1,y=n-1;memset(s,0,sizeof(s));while(count<=n*n){while(x<n-1&&s[x+1][y]==0)s[++x][y]=count++;while(y>=1&&s[x][y-1]==0)s[x][--y]=count++;while(x>=1&&s[x-1][y]==0)s[--x][y]=count++;while(y<n-1&&s[x][y+1]==0)s[x][++y]=count++;}for(int i=0;i<n;i++){printf("%d",s[i][0]);for(int j=1;j<n;j++){printf(" %d",s[i][j]);}printf("\n");}return 0;} 


0 0
原创粉丝点击