1樓:
根據題意是:
fun(0) = 1;
fun(1) = 1;
fun(n) = fun(n-1) + fun(n-2).
就是斐波那契數列
n 0 1 2 3 4 5 6
x 1 1 2 3 5 8 13
2樓:匿名使用者
liuxing167756 所說是正解:(本質就是計算斐波那契數列)fun 這個無返回值函式需要依靠 f1 ,f2 兩區域性變數用來傳遞每一次呼叫的結果地址(區域性變數在堆疊中),每次呼叫都會不一樣。最後的返回值是靠*s來傳送的。
這種用法在返回值很多時常用。多值可以用陣列指標,可以用結構指標。之所以這樣用 因為 fun(n) = fun(n-1) + fun(n-2) 對推公式中需要兩個不同的返回值!
更簡單的公式如:fun(x)=fun(x-1)+5 可以直接用帶返回值得函式遞迴形式。任何遞推公式都可以用遞迴實現,遞迴轉遞推就不一定了。
遞迴的優點是形式簡單執行效率低,記憶體資源消耗大。
根據題意是:
fun(0) = 1;
fun(1) = 1;
fun(n) = fun(n-1) + fun(n-2).
就是斐波那契數列
n 0 1 2 3 4 5 6
x 1 1 2 3 5 8 13
3樓:仙戈雅
樓主,首先你的**執行的結果都是錯的。第6天是8只兔子(包括小中大兔子),而你的程式卻是13只兔子,明顯是錯的。
第1天 第2天 第3天 第4天 第5天 第6天 第7天 ......
1 1 2 3 5 8 13 ......
#include
int fun(int n)
void main()
c語言下列題目怎麼用遞迴法解決
c語言遞迴求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?
問明 舉例 用遞迴方法求n include int main int n int y printf input a integer number scanf d n y fac n printf d d n n,y return 0 int fac int n int f if n 0 printf...
c語言問題,急急急
需要把i定義成全域性變數,就是在函式的外面定義i即 include stdio.h int i void get char c,int i void str back char c,int i void main include stdio.h void get char c,int i void ...
C語言高手請進急急
高金山 基本上就是這個思想,不太對,你再除錯一下吧 include define year 1970 typedef struct date 儲存12個月的天數 const int days 12 判斷是否為閏年 int isleapyear int year return 0 日期轉成1970年1...