?? 75.c
字號:
/*
螺旋隊列:
21 22.....
20 7 8 9 10
19 6 1 2 11
18 5 4 3 12
17 16 15 14 13
看清楚以上數字排列的規律,設1點的坐標是(0,0),x方向向右為正,y方向向下為正,
例如,7的坐標為(-1,-1),2的坐標為(0,1),3的坐標為(1,1)。編程實現輸入任意一點的坐標
(x,y)。輸出所對應的數字。
*/
#include<stdio.h>
#define max(a,b) ((a)<(b)?(b):(a))
#define abs(a) ((a)>0?(a):-(a))
int foo(int x,int y)
{
int t=max(abs(x),abs(y)); //x,y中絕對值大的一個賦值給t;
int u=t+t;
int v=u-1;
v=v*v+u; //當x==y>0時(即在第一象限),對應坐標的值為v
if(x==-t) //
v+=u+t-y;
else if(y==-t)
v+=3*u+x-t;
else if(y==t)
v+=t-x;
else
v+=y-t;
return v;
}
int mofang2()
{
int x,y;
int m,n;
printf("enter N:\n");
scanf("%d",&n);
printf("enter M:\n");
scanf("%d",&m);
printf("螺旋隊列:\n");
{
for(x=-m;x<=m;x++)
{
printf("%5d",foo(x,y));
}
printf("\n");
}
printf("輸入對列坐標:\n");
while(scanf("%d%d",&x,&y)==2)
printf("%d\n",foo(x,y));
return 0;
}
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -