汉诺塔
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 }