汉诺塔
1 #include<stdio.h>
2 #include<stdlib.h>
3
4 void hannuota(int n,char A,char B,char C)
5 {
6 /*如果是1一个盘子
7 直接将A柱子上的一个盘子从A移到C
8 否则
9 先将A柱子上的n-1个盘子借助C移到B
10 直接将A柱子上的盘子从A移到C
11 最后将B柱子上的n-1个盘子借助A移到C
12 */
13 if(n == 1)
14 {
15 printf("将编号为%d的盘子直接从%c柱子移动到%c的柱子
",n,A,C);
16 }
17 else
18 {
19 hannuota(n-1,A,C,B); //将n-1个盘从A借助C移到B
20 printf("将编号为%d的盘子直接从%c柱子移动到%c的柱子
",n,A,C);
21 hannuota(n-1,B,A,C); //将n-1个盘从B盘借助A移动到C
22 }
23 }
24
25 int main()
26 {
27 int n;
28 char ch1='A';
29 char ch2='B';
30 char ch3='C';
31 printf("请输入汉诺塔的个数:");
32 scanf("%d",&n);
33
34 hannuota(n,ch1,ch2,ch3);
35
36 return 0;
37 }
阶乘
1 #include<stdio.h>
2 #include<stdlib.h>
3
4 void f(int n)
5 {
6 if(n == 1)
7 {
8 return 1;
9 }
10 else
11 {
12 return f(n-1)*n;
13 }
14 }
15
16 int main()
17 {
18 int n;
19 printf("%d"的阶乘是%d,f(3));
20 return 0;
21 }