1、用递归求学生年龄
1 #include<stdio.h> 2 int main() 3 { 4 int age(int n); 5 printf("NO.5 age is %d\n",age(5)); 6 return 0; 7 } 8 int age(int n) 9 { 10 int c; 11 if(n==1) 12 c=10; 13 else 14 c=age(n-1)+2; 15 return c; 16 }
2、求阶乘
#include<stdio.h> int main() { int fac(int n); int n,y; printf("输入n: "); scanf("%d",&n); y=fac(n); printf("%d!=%d\n",n,y); return 0; } int fac(int n) { int f; if(n==1||n==0) f=1; else f=fac(n-1)*n; return f; }
3、汉诺塔问题
1 #include<stdio.h> 2 int main() 3 { 4 void hanoi(int n,char one,char rwo,char three); 5 int m; 6 printf("input the number of diskes:"); 7 scanf("%d",&m); 8 printf("the step to move %d diskes:\n",m); 9 hanoi(m,'A','B','C'); 10 return 0; 11 } 12 void hanoi(int n,char one,char two,char three) 13 { 14 void move(char x,char y ); 15 if(n==1) 16 move(one,three); 17 else 18 { 19 hanoi(n-1,one,three,two); 20 move(one,three); 21 hanoi(n-1,two,one,three); 22 } 23 } 24 void move(char x,char y) 25 {printf("%c-->%c ",x,y); 26 }