设为首页 加入收藏

TOP

YT14-HDU-洗牌的规律
2015-07-20 17:20:13 来源: 作者: 【 】 浏览:3
Tags:YT14-HDU- 洗牌 规律

Problem Description

Eddy是个ACMer,他不仅喜欢做ACM题,而且对于纸牌也有一定的研究,他在无聊时研究发现,如果他有2N张牌,编号为1,2,3..n,n+1,..2n。这也是最初的牌的顺序。通过一次洗牌可以把牌的序列变为n+1,1,n+2,2,n+3,3,n+4,4..2n,n。那么可以证明,对于任意自然数N,都可以在经过M次洗牌后第一次重新得到初始的顺序。 编程对于小于100000的自然数N,求出M的值。

Input

每行一个整数N

Output

输出与之对应的M

Sample Input

20
1

Sample Output

20
2


代码如下:

#include 
  
   
using namespace std;
int main()
{
    int n;
    int c = 1;
    int m;
    while (cin>>n)
    {
          m = 1;
          while(1)
          {
                  if (c <= n)
                  {
                        c = 2 * c;
                  }
                  else 
                  {
                       c = (c - n) * 2 - 1;
                  }
                  if ( c == 1) break;
                  m++;
          }
          cout<
   
    



】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
分享到: 
上一篇LA 6529 Eleven dp 下一篇[LeetCode]142.Linked List Cycle..

评论

帐  号: 密码: (新用户注册)
验 证 码:
表  情:
内  容:

·【C语言】动态内存管 (2025-12-27 06:23:20)
·C语言中的内存管理 - (2025-12-27 06:23:16)
·C语言指南:C语言内 (2025-12-27 06:23:14)
·Redis on AWS:Elast (2025-12-27 04:19:30)
·在 Spring Boot 项目 (2025-12-27 04:19:27)