当前位置: 代码迷 >> 综合 >> NYOJ - 蛇形填数
  详细解决方案

NYOJ - 蛇形填数

热度:70   发布时间:2024-01-20 18:13:26.0

蛇形填数

时间限制: 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 1
6 9 2
5 4 3
#include<stdio.h>
int main()
{int n,m = 0,a[101][101],sign = 0;scanf("%d",&n);int n1 = n;while(sign < n*n){   int i = m,j = n1-1;while(i < n1 - 1&&!a[i][j])//downa[i++][j] = ++sign;   while(j > m&&!a[i][j]) //lefta[i][j--] = ++sign;while(i > m&&!a[i][j]) //upa[i--][j] = ++sign;while(j < n1&&!a[i][j])//righta[i][j++] = ++sign;m++;n1--;}for(int i = 0; i < n; i++){for(int j = 0; j < n; j++){printf("%5d",a[i][j]);}printf("\n");}
}
  相关解决方案