- 汉诺塔问题
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> void hanoi(int n,char a,char b,char c) { if (n == 1) { printf("%c->%c\n", a, c); } else { hanoi(n - 1, a, c, b); printf("%c->%c\n", a, c); hanoi(n - 1, b,a, c); } } int main() { char a = 'A'; char b = 'B'; char c = 'C'; //汉诺塔问题 hanoi(3, a, b, c); return 0; }
汉诺塔问题注意点:在代码实现过程中不去注重辅助柱子,更加注重目的柱子和起始柱子。
- 青蛙跳台阶问题:一只青蛙一次可以跳1个台阶或者2个台阶,n个台阶共有多少跳法?(类似菲波那切数列)
#define _CRT_SECURE_NO_WARNINGS 1 #include <stdio.h> int jump(int n) { if (n <= 1) { return 1; } else { return jump(n - 1) + jump(n - 2); } } int main() { int n = 0; scanf("%d", &n); int cishu=jump(n); printf("%d\n", cishu); return 0; }
汉诺塔问题和青蛙跳台问题
于 2023-04-13 09:58:42 首次发布