Chinaunix首页 | 论坛 | 博客
  • 博客访问: 199674
  • 博文数量: 51
  • 博客积分: 1435
  • 博客等级: 上尉
  • 技术积分: 590
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-05 18:33
文章分类

全部博文(51)

文章存档

2012年(17)

2011年(34)

分类: C/C++

2011-04-16 12:21:33

  1. #include <stdio.h>
  2. #include <math.h>
  3. #define abs(a) ((a>0) ? (a) :(-a))
  4. #define max(a,b) ((a>b) ?(a):(b))
  5. int spiral(int,int);
  6. int main()
  7. {
  8.     int x,y,answer;
  9.     for(y=-5;y<=5;y++)
  10.     {
  11.         
  12.         for(x=-5;x<=5;x++)
  13.         { answer=spiral(x,y);
  14.         printf("%5d ",answer);
  15.         }
  16.         printf("\n");
  17.     }
  18.     while(scanf("%d %d",&x,&y)==2)
  19.         printf("%d\n",spiral(x,y));

  20.     //
  21.     return 0;
  22. }
  23. int spiral(int x,int y)
  24. {
  25.     int t=max(abs(x),abs(y));
  26.     int a=2*t+1;
  27.     int v=(int)pow(a,2);
  28.     int u;
  29.     if(y==-t)
  30.     {
  31.         u=v+y+x;
  32.     }
  33.     else if(x==-t)
  34.     {
  35.         u=v+3*x-y;
  36.     }
  37.     else if(y==t)
  38.     {
  39.         u=v-5*y-x;
  40.     }
  41.     else
  42.         u=v-7*x+y;
  43.     return u;

  44. }
阅读(1067) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~