c語言實現遞迴演算法
遞迴演算法是運用於函式呼叫中的。
遞迴的概念:在乙個函式體內呼叫自身稱為函式的遞迴呼叫。
遞迴呼叫的原理:需要在函式內滿足一定的條件後不在呼叫自身或者結束,或者呼叫其它函式,
否則容易出現類似死迴圈的情況,程式將癱瘓。 已知
f(1) = 1
,f(0) = 0,fn(n) = f(n-1) + f(n-2),
求f(5)
為多少?
第一步,把
5帶入遞迴公式中得到
f(5) = f(4) + f(3),
此時f(4)
以及f(3)
仍然屬於未知,必須繼
續求f(4)
和f(3)
。 第二步,把
4帶入遞迴公式中得到
f(4) = f(3) + f(2)
。 第三步,把
3帶入遞迴公式中等到
f(3) = f(2) + f(1)
。 第四步,把
2帶入遞迴公式中得到
f(2) = f(1) + f(0)
。 第五步,此時
f(0)
和f(1)
都是已知的,然後下一步將它們一級一級代入到以上的公式中,逐
一求出f(2)
,f(3)
,(4)
,最後求出結果
f(5)。
求階乘n!
= n*(n-1)*(n-2)*...*2*1。
首先定義最終終止條件
f(1) = 1。
然後定義遞迴公式
f(n) = f (n)*f(n-1) 。
#include
int fn(int a);
void main()
int fn(int a)
else
}
斐波那契數列是第一和第二個數都為
1,後面的數都是前兩個數相加的和得到的。如(1
,1
,2,3,5,…)
求斐波那契數列的前
10個數。
首先定義最終終止條件
f(1)=1,f(2)=1;
然後定義遞迴公式中
f(n)=f(n-1)+f(n-2)。
#include
int fn(int a);
void main()
int fn(int a)
else if(a>2)}
有乙個農場在第一年的時候買了一頭剛出生牛,這頭牛在第四年的時候就能生一頭小牛,以後每
年這頭牛就會生一頭小牛。這些小牛成長到第四牛又會生小牛,以後每年同樣會生一頭牛,假設
牛不死,如此反覆。請問
50年後,這個農場會有多少頭牛?
首先定義最終終止條件
f(4)=1;
然後定義遞迴公式中
f(n)=f(n-1)+f(n-3)。
#include
int fn(int a);
void main()
int fn(int a)
else if(a>=4)
}
有個蓮花池裡起初有乙隻蓮花,每過一天蓮花的數量就會翻一倍。假設蓮花永遠不凋謝,
30天的
時候蓮花池全部長滿了蓮花,請問第
23天的蓮花佔蓮花池的幾分之幾?
首先定義最終終止條件
f(1)=1;
然後定義遞迴公式中
f(n)=f(n-1)*2。
#include
int fn(int a);
void main()
int fn(int a)
else
}
c語言實現磁碟排程演算法 C語言實現洗牌演算法
首先看一道題目 有乙個大小為100的陣列,裡面的元素是從 1 到 100,隨機從陣列中選擇50個不重複數。用math.random 100,就可以拿到乙個 0 到 99 的隨機數,是不是重複50次就可以了?當然不是,假如,第一次隨機到5,第二次如果再一次隨機到5的話,要求是選擇不重複的數,所以要選出...
C語言實現Fibonacci數列遞迴
問題描述 fibonacci數列的遞推公式為 fn fn 1 fn 2,其中f1 f2 1。當n比較大時,fn也非常大,現在我們想知道,fn除以10007的餘數是多少。include include int n 10007 計算fibonacci函式 int fibo程式設計客棧nacci int ...
lfu演算法實現c語言 lru演算法c語言實現
a 分配頁面 b 置換演算法 c 程式訪問 d 換出頁面 正確答案 d 單選題 22.設某程序的頁訪問串為 1 3 1 2 4,工作集為 3 塊,問 按 lru 頁面替換演算法,儲存管理採取虛擬儲存技術 組成 物理記憶體 主機板上的ram 和硬碟上的 虛擬記憶體聯合組成 頁面大小 4kb 例 頁面排...