国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 學院 > 開發設計 > 正文

hdu 2175 漢諾塔IX(找規律)

2019-11-06 06:21:47
字體:
來源:轉載
供稿:網友

1,2,…,n表示n個盤子.數字大盤子就大.n個盤子放在第1根柱子上.大盤不能放在小盤上. 在第1根柱子上的盤子是a1,a2,…,an. a1=n,a2=n-1,…,an=1.即a1 是最下 面的盤子.把n個盤子移動到第3根柱子.每次只能移動1個盤子,且大盤不能放在小盤上. 問第m次移動的是那一個盤子. Input 每行2個整數n (1 ≤ n ≤ 63) ,m≤ 2^n-1.n=m=0退出 Output 輸出第m次移動的盤子的號數. Sample Input

63 163 20 0

Sample Output

12

先來看看盤子數比較小的時候情況:

當n==1時

1

當n==2時

1 2 1

當n==3時

1 2 1 3 1 2 1

當n==4時

1 2 1 3 1 2 1 4 1 2 1 3 1 2 1

由此可見,可以根據“從大到小”取的規則,判斷是否整除即可。

#include<iostream>using namespace std;int main(){ long long n,m; while(cin>>n>>m) { if(n==0&&m==0) break; long long ans=1,cnt=1; for(int i=0;i<n-1;i++) ans*=2; for(int i=n;i>=1;i--) { if(m%ans==0) { cnt=i; break; } ans/=2; } cout<<cnt<<endl; } return 0;}
發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
主站蜘蛛池模板: 泽库县| 九龙县| 永康市| 静乐县| 岑溪市| 莲花县| 那坡县| 博爱县| 天台县| 清流县| 册亨县| 丹凤县| 南溪县| 托克逊县| 湖南省| 祁门县| 新郑市| 安阳市| 清水河县| 湖州市| 榆林市| 招远市| 桂东县| 图木舒克市| 贺州市| 新竹市| 双辽市| 榕江县| 石家庄市| 奉新县| 卢氏县| 毕节市| 丰城市| 宝坻区| 隆化县| 威远县| 社会| 曲阜市| 乃东县| 扎赉特旗| 泽普县|