笛卡尔平面螺旋算法?

时间:2013-08-15 01:58:25

标签: algorithm sorting

考虑参观笛卡尔平面螺旋线。初始位置是(0,0)。在第一步中,您移动到(1.0),在第二步(1.1)中,在步骤3中,您将处于位置(0,1),步骤4将您带到(-1.1),依此类推。在步骤2012:你到达的坐标是什么?2121年的坐标是什么?

1 个答案:

答案 0 :(得分:1)

要找到第n个坐标((0,0)为0),首先取c = floor(sqrt(n))。如果c * c == n,则坐标为(c,c)。否则,如果n-c * c <= 2c,则坐标为(c + c * c-n,c)。否则,如果n-c * c <= 4c,则坐标为(-c,3c + c * c-n)。否则,如果n-c * c <= 6c,则坐标为(n-c * c-5c,-c)。否则,坐标为(c,n-c * c-7c)。因此,2012年是(-29,44),2121是(41,46)。请自己编写代码,这看起来像是作业。