NYOJ 33(回转填数)

简介:   回转填数(题目叫蛇形填数) 时间限制:3000 ms | 内存限制:65535 KB 难度:3   描述在n*n方陈里填入1,2,...,n*n,要求填成蛇形。例如n=4时方陈为:10 11 12 19 16 13 28 15 14 37 6 5 4  输入 直接输入方陈的维数,即n的值。

 

回转填数(题目叫蛇形填数)

时间限制: 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 a[101][100]={0};int i,j,k;int n,num,x,y;
	num=1;
	scanf("%d",&n);
	a[x=1][y=n]=1;
	while(num<n*n)
	{
		while(x+1<=n&&!a[x+1][y]) a[++x][y]=++num;
		while(y-2>=0&&!a[x][y-1]) a[x][--y]=++num;
		while(x-2>=0&&!a[x-1][y]) a[--x][y]=++num;
		while(y+1<=n&&!a[x][y+1]) a[x][++y]=++num;
	}

	for(i=1;i<=n;i++)
	{
		for(j=1;j<=n;j++)
			printf("%d ",a[i][j]);
		printf("\n");
	}
	return 0;
}

  

目录
相关文章
NYOJ&#160;回文字符串
回文字符串 时间限制:3000 ms  |  内存限制:65535 KB 难度:4 描述 所谓回文字符串,就是一个字符串,从左到右读和从右到左读是完全一样的,比如"aba"。当然,我们给你的问题不会再简单到判断一个字符串是不是回文字符串。
795 0
NYOJ 113
1 #include 2 #include 3 using namespace std; 4 5 int main() 6 { 7 int pos=-1; 8 string s; 9 while(getline(cin,s)) 10 { 11 while((pos=s.
677 0
|
机器学习/深度学习 人工智能 算法
NYOJ 148
  fibonacci数列(二) 时间限制:1000 ms | 内存限制:65535 KB 难度:3   描述 In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn − 1 + Fn − 2 for n ≥ 2.
853 0
NYOJ 19
  擅长排列的小明 时间限制:1000 ms | 内存限制:65535 KB 难度:4   描述 小明十分聪明,而且十分擅长排列计算。比如给小明一个数字5,他能立刻给出1-5按字典序的全排列,如果你想为难他,在这5个数字中选出几个数字让他继续全排列,那么你就错了,他同样的很擅长。
749 0
|
测试技术
NYOJ 467
  中缀式变后缀式 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 人们的日常习惯是把算术表达式写成中缀式,但对于机器来说更“习惯于”后缀式,关于算术表达式的中缀式和后缀式的论述一般的数据结构书都有相关内容可供参看,这里不再赘述,现在你的任务是将中缀式变为后缀式。
719 0
NYOJ 128
前缀式计算 时间限制:1000 ms  |  内存限制:65535 KB 难度:3   描述 先说明一下什么是中缀式: 如2+(3+4)*5这种我们最常见的式子就是中缀式。 而把中缀式按运算顺序加上括号就是:(2+((3+4)*5)) 然后把运算符写到括号前面就是+(2 *( +(3 4) 5) ) 把括号去掉就是:+ 2 * + 3 4 5 最后这个式子就是该表达式的前缀表示。
789 0
|
机器学习/深度学习 人工智能
NYOJ 488(素数环)
#include #include #include int a[21],visited[21],N; int is_prime(int k) { int i; for(i=2;i*i
812 0