zoukankan      html  css  js  c++  java
  • HDOJ2175 汉诺塔IX[递推]

    汉诺塔IX

    Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)
    Total Submission(s): 437    Accepted Submission(s): 250


    Problem Description
    1,2,...,n表示n个盘子.数字大盘子就大.n个盘子放在第1根柱子上.大盘不能放在小盘上.
    在第1根柱子上的盘子是a[1],a[2],...,a[n]. a[1]=n,a[2]=n-1,...,a[n]=1.即a[1]是最下
    面的盘子.把n个盘子移动到第3根柱子.每次只能移动1个盘子,且大盘不能放在小盘上.
    问第m次移动的是那一个盘子.
     
    Input
    每行2个整数n (1 ≤ n ≤ 63) ,m≤ 2^n-1.n=m=0退出
     
    Output
    输出第m次移动的盘子的号数.
     
    Sample Input
    63 1 63 2 0 0
     
    Sample Output
    1 2
     
    Author
    zhousc
     
    Source
     
    Recommend
    lcy
     
     
     
     
    规律:
     
    121
    1213121
    121312141213121
    1213121412131215121312141213121
     
     
    2^(n-2)+(k-1)*(2^(n-1))=(2*k-1)*(2^(n-1))
    2*k-1为奇数
    code:
     1 #include<iostream>
     2 #include<algorithm>
     3 using namespace std;
     4 
     5 int main()
     6 {
     7     __int64 n,m;
     8     int i;
     9     while(~scanf("%I64d%I64d",&n,&m),n||m)
    10     {
    11         if(m%2)
    12         {
    13             printf("1\n");
    14             continue;
    15         }
    16         if(m==int(1<<(n-1)))
    17         {
    18             printf("%I64d\n",n);
    19             continue;
    20         }
    21         i=1;
    22         while(m%2==0)
    23         {
    24             m/=2;
    25             i++;
    26         }
    27         printf("%d\n",i);
    28     }
    29     return 0;
    30 }
  • 相关阅读:
    CentOS7下部署Django
    ORM动态创建表
    JQuery制作加载进度条
    文件上传、下载
    Django执行事务操作
    python常用代码
    深入理解Java虚拟机-垃圾收集器
    ILRuntime作者林若峰分享:次世代手游渲染怎么做
    Android:手把手教你构建 全面的WebView 缓存机制 & 资源加载方案
    unity3d 热更篇--ILRuntime原理
  • 原文地址:https://www.cnblogs.com/XBWer/p/2637800.html
Copyright © 2011-2022 走看看