博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
HDU 2175 汉诺塔IX
阅读量:4304 次
发布时间:2019-06-06

本文共 833 字,大约阅读时间需要 2 分钟。

 

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
 
代码:
#include 
using namespace std;long long dfs(long long n,long long m) { if(n == 1 && m == 1) return 1; long long mid = pow(2, n - 1); if(m == mid) return n; else if(m > mid) return dfs(n - 1, m - mid); else return dfs(n - 1, m);}int main() { long long N, M; while(~scanf("%lld%lld", &N, &M)) { if(N == 0 && M == 0) break; else printf("%lld\n", dfs(N, M)); } return 0;}

  

转载于:https://www.cnblogs.com/zlrrrr/p/9642907.html

你可能感兴趣的文章
需求?
查看>>
c++11编码规范 NULL还是nullptr
查看>>
sql反模式分析2
查看>>
Poj 1556 The Doors 计算几何+最短路
查看>>
react项目在ie空白解决
查看>>
[spring boot] 01 环境搭建 - 配置java和mvn环境
查看>>
10个机器学习人工智能开发框架和AI库(优缺点对比表)/贪心学院
查看>>
docker常用命令
查看>>
前序工作(宏定义,typedef,函数等)
查看>>
莫队模板
查看>>
Codeforces Round #FF (Div. 1) A. DZY Loves Sequences
查看>>
php获取当前时间戳方法
查看>>
JAVA字符串格式化-String.format()的使用
查看>>
编译时类型 和运行时类型的 区别(1)
查看>>
php pcntl 多进程学习
查看>>
C++类指针类型的成员变量的浅复制与深复制
查看>>
看看清华的同学在四年的大学中干什么吧,非常值得学习
查看>>
Java和.NET(C#)的开发用到的技术对比总结
查看>>
关于strassen矩阵乘法的矩阵大小不是2^k的形式时,时间复杂度是否还是比朴素算法好的看法...
查看>>
vl_sift函数用法
查看>>