数字旋涡问题
老师出了一道题,但是想了三个点没想出来题是这样的,假如输入2
输出12
43
输入3
输入123
894
765
很难呀! 帮忙解决一下
----------------解决方案--------------------------------------------------------
如果是4呢?
----------------解决方案--------------------------------------------------------
是螺旋数字方阵吧,是个顺时针的.很久前写过个
#include <stdio.h>
#include <stdlib.h>
int movei[4]={1,0,-1,0};
int movej[4]={0,1,0,-1};
int print(int*,int);
int clock(int,int *);
int print(int *pa,int n){
int i,j;
for(i=0;i<=n-1;i++){
for(j=0;j<=n-1;j++)
printf("%4d",*(pa+i*n+j));
printf("\n");
}
printf("\n");
return 0;
}
int clock(int n,int *a){
int i=0,j=0,t=1,x1=n,y1=n,x2=-1,y2=0,direct=1;
while(t<=n*n){
*(a+i*n+j)=t++;
i+=movei[direct];
j+=movej[direct];
if(j==x1&&i==y2){
j--;
i++;
direct=0;
x1--;
continue;
}
if(j==x1&&i==y1){
j--;
i--;
y1--;
direct=3;
continue;
}
if(j==x2&&i==y1){
j++;
i--;
x2++;
direct=2;
continue;
}
if(j==x2&&i==y2){
i++;
j++;
y2++;
direct=1;
}
}
return 0;
}
int main()
{
int a[900]={0},n;
scanf("%d",&n);
clock(n,&a[0]);
print(&a[0],n);
system("PAUSE");
return 0;
}
----------------解决方案--------------------------------------------------------
这个是程序员考试书上的..可以去找看看啊
----------------解决方案--------------------------------------------------------
感觉步骤这么多呢?
----------------解决方案--------------------------------------------------------
也没有输入的!
怎么搞的,好像很难的样子!
----------------解决方案--------------------------------------------------------
[bo]以下是引用 [un]ggggiaqgyd[/un] 在 2008-3-15 19:36 的发言:[/bo]
也没有输入的!
怎么搞的,好像很难的样子!
也没有输入的!
怎么搞的,好像很难的样子!
什么叫也没有输入的?
----------------解决方案--------------------------------------------------------
假如输入5那就是5*5的方阵呀
----------------解决方案--------------------------------------------------------
我写的那个应该没有问题
----------------解决方案--------------------------------------------------------
考点是考算法吗?
----------------解决方案--------------------------------------------------------