1樓:
答案是16;
fit(6)呼叫函式
fit(5)+fit(4)
繼續呼叫
fit(4)+fit(3)+fit(3)+fit(2)繼續呼叫
fit(3)+fit(2)+fit(2)+fit(1)+fit(2)+fit(1)+fit(2)
呼叫fit(2)+fit(1)+fit(2)+fit(2)+fit(1)+fit(2)+fit(1)+fit(2)
n<=2返回2,返回值是 2*8=16
2樓:眼眶的濕潤
這裡 return 的確是要返回了,但是在返回之前必須先算出fib(5)+fib(4)的值
那麼就必須再呼叫fib函式
fib(6)=fib(5)+fib(4)
fib(5)=fib(4)+fib(3)
fib(4)=fib(3)+fib(2)
fib(3)=fib(2)+fib(1)
fib(2)、fib(1)由於n<=2,所以都等2所以fib(3)=2+2=4
fib(4)=4+2=6
fib(5)=4+6=10
fib(6)=10+6=16
3樓:飛丶逐夢
在返回之前要先求出fib(5)和fib(4)的值,才能求和,返回結果,也就是再分別呼叫fib(5)和fib(4),在fib(5)的過程中,因為n>2,所以在fib(5)裡還要算fib(4)和fib(3),在fib(4)裡還要呼叫fib(3)和fib(2),直到n<=2才返回結果,返回的時候是一步步地向它的主調函式返回的,直到返回到fib(5)的這一層,這時fib(5)的值就求出來了,fib(4)也經歷一遍統同樣的過程,才能求出最終的值返回給main();
c語言函式遞迴呼叫看不懂了,求教
4樓:尛芯の銥籟
程式語言中,函式func(type a,……)直接或間接呼叫函式本身,則該函式稱為遞迴函式。遞迴函式不能定義為內聯函式。在數學上,關於遞迴函式的定義如下:
對於某一函式f(x),其定義域是集合a,那麼若對於a集合中的某乙個值x0,其函式值f(x0)由f(f(x0))決定,那麼就稱f(x)為遞迴函式。
c語言 程式設計題 使用函式遞迴呼叫編寫n!(階乘)——高手請導啊!
5樓:匿名使用者
#include
void main()
float fac(int n)
else
if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);}
6樓:
#include
int di(int n)
int main()
c語言 函式遞迴呼叫是怎麼回事?
7樓:匿名使用者
一般來說是自己呼叫自己,一般有兩個分支,乙個分支是呼叫自己,還有乙個分支是結束條件
如求n!
int f(int n)
還有乙個比較複雜一點,是雙向呼叫,也就是a函式呼叫b函式,b函式在呼叫a函式
這樣迴圈呼叫,其實基於這個道理,還有多個函式互相呼叫,不過這樣的情況很少見
但萬變不離其宗,每個函式都有兩個分支,乙個是結束條件,乙個是呼叫函式
8樓:匿名使用者
遞迴呼叫是一種特殊的巢狀呼叫,是某個函式呼叫自己,而不是另外乙個函式。但是呼叫的時候肯定有乙個終止條件,退出遞迴呼叫。
9樓:匿名使用者
函式自己呼叫自己,或兩函式互相巢狀。
10樓:匿名使用者
自己呼叫自己就是遞迴,資料結構中的樹遍歷可以用遞迴實現。
在c語言中用遞迴呼叫的方法求n!
11樓:璐人釔
double jiecheng(double n)
return n * jiecheng(n - 1);}
12樓:匿名使用者
求n的階乘,遞迴,參考**如下:
#include
double fac(int n)
int main()
13樓:匿名使用者
#include
int func(int n)
int main()
執行過程:
-》func(5)
-》5*func(4)
-》5*(4*func(3))
-》5*(4*(3*func(2))))
-》5*(4*(3*(2*func(1))))當n為0的時候停止遞迴,返回結果
由於遇到1的時候返回1,那麼func(1)=1所以結果是5*(4*(3*(2*1))) = 120
14樓:匿名使用者
int fun(int x)
void main()
因為n=n*(n-1)!
所以主要思想是這樣,如果要求的n值為1,則返回1否則返回n*(n-1)!
15樓:匿名使用者
int getn(int n)
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語言程式設計函式呼叫問題,C語言程式設計函式呼叫問題
char in if in yi 錯了。char in 只能容納 1 個 ascii 符號。改 char in 4 printf 解方程應用 n n您要解的方程是?n printf 一元二次方程 yi n printf 二元一次方程 er n scanf s in 0 if strcmp in,yi...
c語言 呼叫函式求最大值問題,C語言 呼叫函式求最大值問題
printf 最大的數是 n max printf 最大的數是 d n max printf 最大的數是 d n max a 10 10 這樣應該就可以了!您的程式有多處錯誤。既然是初學,就先把最基本的東西都弄清楚啊,否則別人都不願意幫您。簡單列出您的錯誤如下 1 在max函式內又宣告了a 10 這...