感觉就是乱搞找规律

自己写几组数据

本来开始是想着把 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 }

 

相关文章:

  • 2021-12-09
  • 2022-01-18
  • 2021-12-29
  • 2021-06-02
  • 2022-12-23
  • 2021-07-14
  • 2021-08-27
  • 2022-12-23
猜你喜欢
  • 2022-12-23
  • 2022-12-23
  • 2022-12-23
  • 2021-10-21
  • 2021-12-03
  • 2022-12-23
  • 2022-12-23
相关资源
相似解决方案