基础算法 —— 递推算法
生活随笔
收集整理的這篇文章主要介紹了
基础算法 —— 递推算法
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
【概述】
【經(jīng)典應(yīng)用】
1.斐波那契數(shù)列的遞推實(shí)現(xiàn)
int Fibonacci(int n) { if (n<0) return -1; int n1=1,n2=2,n3=3;for (int i=3;i<=n;++i) { n3=n1+n2; n1=n2; n2=n3; } return n3; }2.漢諾塔問題的遞推實(shí)現(xiàn)
#include<stdio.h> int ct=1;//記錄步數(shù),在步驟中輸出 void move(int n,char from,char to) {printf("第 %2d 步:把第 %d 個(gè)盤子: %c >>>>>>> %c\n",ct++,n,from,to); } int hanoi(int n)//輸出步數(shù): {int cnt = 2,ans = 1;if(n == 1)return 1;elsereturn 2* hanoi(n-1) +1; } void hanoi_tower(int n,char x,char y, char z) //輸出步驟 {if(n==1)move(1,x,z);else{hanoi_tower(n-1,x,z,y);move(n,x,z);hanoi_tower(n-1,y,x,z);} } int main() {int n;//盤子個(gè)數(shù)printf("輸入盤子個(gè)數(shù):\n");scanf("%d",&n);char x = 'A',y = 'B',z = 'C';int t = hanoi(n);printf("一共需要%2d步。\n",t);hanoi_tower(n,x,y,z);return 0; }關(guān)于漢諾塔問題:點(diǎn)擊這里
【例題】
總結(jié)
以上是生活随笔為你收集整理的基础算法 —— 递推算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Game of Lines(POJ-36
- 下一篇: 烦人的幻灯片(信息学奥赛一本通-T139