给定 A 、 B 、 C 三根足够长的细柱在 A 柱上放有 2n 个中间有孔的圆盘共有 n 个不同的尺寸每个尺寸都有两个相同的圆盘注意这两个圆盘是不加区分的下图为 n=3 的情形。现要将这些圆盘移到 C 柱上在移动过程中可放在 B 柱上暂存。要求:1每次只能移动一个圆盘;2 A 、 B 、 C 三根细柱上的圆盘都要保持上小下大的顺序;任务:设 An 为 2n 个圆盘完成上述任务所需的最少移动次
#include
int Hanoi(int n) { if (n == 1) return 1; return 2 * Hanoi(n - 1) + 1; }
int main() { int n; scanf("%d", &n); printf("%d", Hanoi(n)); return 0; }
原文地址: https://www.cveoy.top/t/topic/fmaU 著作权归作者所有。请勿转载和采集!