找回密码
 立即注册
搜索
查看: 442|回复: 3

发个数学题,螺旋队列,有没有人看得懂?

[复制链接]

659

主题

8932

回帖

1万

积分

信息监察员

你地!斯拉斯拉地有!

积分
12518
发表于 2010-7-13 18:12:12 | 显示全部楼层 |阅读模式
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));
int u = t + t;
int v = u - 1;
v = v * v + u;

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 main()
{
int x,y;
while(scanf("%d%d", &x, &y) == 2)
printf("%d\n", foo(x,y));

return 0;
}

[ 本帖最后由 hugh-true 于 2010-7-13 18:13 编辑 ]
whose more the fool,the fool or the fool who follows?

一个民主国家,主权应该在人民手中,这是天经地义的事;如果一个号称民主的国家,而主权不在人民手中,这决不是正轨,只能算是变态,就不是民主国家...不结束党治,不实行人民普选,如何能实现民主?把人民的权利交给人民! (《新华日报》1945年9月27日社论)

623

主题

8454

回帖

7741

积分

版主

弱弱的海豚

积分
7741
发表于 2010-7-13 18:17:35 | 显示全部楼层
好多年前在百度发过呀
其实我本来什么都没有....


俺是多尔的豌豆.. 俺是墙根...  俺还有那乌黑亮丽的长发...



上得了厅堂,下得了厨房,写得了代码,查得出异常,杀得了木马,翻得了围墙,开得起好车,买得起新房,斗得过二奶,打得过流氓
回复

使用道具 举报

659

主题

8932

回帖

1万

积分

信息监察员

你地!斯拉斯拉地有!

积分
12518
 楼主| 发表于 2010-7-13 18:31:49 | 显示全部楼层
是呢,就是好多年前呢
whose more the fool,the fool or the fool who follows?

一个民主国家,主权应该在人民手中,这是天经地义的事;如果一个号称民主的国家,而主权不在人民手中,这决不是正轨,只能算是变态,就不是民主国家...不结束党治,不实行人民普选,如何能实现民主?把人民的权利交给人民! (《新华日报》1945年9月27日社论)
回复

使用道具 举报

659

主题

8932

回帖

1万

积分

信息监察员

你地!斯拉斯拉地有!

积分
12518
 楼主| 发表于 2010-7-13 21:20:57 | 显示全部楼层
是呢好多好多好多年前
whose more the fool,the fool or the fool who follows?

一个民主国家,主权应该在人民手中,这是天经地义的事;如果一个号称民主的国家,而主权不在人民手中,这决不是正轨,只能算是变态,就不是民主国家...不结束党治,不实行人民普选,如何能实现民主?把人民的权利交给人民! (《新华日报》1945年9月27日社论)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|海浩社区

GMT+8, 2025-9-24 02:59 , Processed in 0.083221 second(s), 21 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

快速回复 返回顶部 返回列表