C语言递归算法(二)
生活随笔
收集整理的這篇文章主要介紹了
C语言递归算法(二)
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
1.漢諾塔問題
#include <stdio.h> int count; void hanoi(int n,char a,char b,char c); int main(void){int n;char a='A',b='B',c='C';printf("請輸入漢諾塔層數\n");scanf("%d",&n);hanoi(n,a,b,c);return 0; } void hanoi(int n,char a,char b,char c){if(n==1){printf("第%d次移動:%c->%c\n",++count,a,c);}else{hanoi(n-1,a,c,b);printf("第%d次移動:%c->%c\n",++count,a,c);hanoi(n-1,b,a,c);} }2.斐波那契數列
#include <stdio.h> int fibo(int a); int main(void){int a;printf("請輸入月份\n");scanf("%d",&a);printf("%d\n",fibo(a));return 0; } int fibo(int a){if(a==0) {return 0;}else if(a==1) {return 1;}else {return fibo(a-1)+fibo(a-2);} }?
3.共有十階樓梯,小張每次只能走一階或兩階,共有多少種方法走完此樓梯
#include <stdio.h> int fun(int n){if(n==1)return 1;if(n==2)return 2;else{return fun(n-1)+fun(n-2);} } int main(void){int (*p)(int)=fun;printf("%d\n",p(10));return 0; }4.遞歸方法十進制轉化二進制
#include <stdio.h> void shi_er(unsigned long n){int r;r=n%2;if(n>=2){shi_er(n/2);}putchar(r==0?'0':'1'); } int main(void){shi_er(10);return 0; }?
總結
以上是生活随笔為你收集整理的C语言递归算法(二)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: zcmu-2098
- 下一篇: 怎么把一个RPM包安装到不同的目录?