c語言遞迴呼叫的題目,急急急,c語言遞迴呼叫的題目,急急急

時間 2021-09-07 04:06:49

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...