感觉就是乱搞找规律

自己写几组数据

本来开始是想着把 n 个数字每次回到原来位置各需要多少次,然后取它们的最小公倍数就好了

但是数据写着写着发现每一个数回到原来位置次数都是一样的,那么就简单了,直接第一个数

为例,不断跟踪位置,计算它走过的次数

 1 #include <cstdio>
 2 
 3 int main()
 4 {
 5     int n;
 6     while(scanf("%d" , &n)!=EOF)
 7     {
 8         int k = 2 , ans = 1;
 9         while(k != 1){
10             if( k <= n ) k <<= 1;
11             else k = (k - n)*2-1;
12             ans++;
13         }
14         printf("%d\n" , ans);
15     }
16     return 0;
17 }

 

 posted on 2014-12-31 22:41  Love风吟  阅读(240)  评论(0)    收藏  举报