用c語言,利用遞迴函式求n ,由鍵盤輸入任一整數,求n

時間 2021-05-04 21:50:01

1樓:匿名使用者

//利用遞迴函式求n!,由鍵盤輸入任一整數,求n!

#include

unsigned long jc(unsigned  long n)int main()

return 0;}

2樓:仙戈雅

#include

#include

inline int _rec(int n)int main(void)

3樓:visr_午夜

首先明確題目要求:遞迴函式,求n!

遞迴函式的含義:

程式語言中,函式func(type a,……)直接或間接呼叫函式本身,則該函式稱為遞迴函式。

n!表示階乘函式,即1*2*3*……*n

下面給出**:(c語言實現 )

比較簡單的尾遞迴實現:

#include

long digui(int n);  //遞迴函式宣告int main()

long digui(int n)  //遞迴函式部分

4樓:青鳥中關村專家

fun(int i)

需要計算的數字傳遞進來就可以了

5樓:匿名使用者

【c語言の不懂,抄個加法供參考。編寫程式,用遞迴函式完成,求整數1+……+n的和】

#include

int sum(int);

int main()

int sum(int x)

else}

c++程式設計:用遞迴函式求n!,其中n從鍵盤輸入。

6樓:敬憐晴蕢佩

一個函式在它的函式體內呼叫它自身稱為遞迴呼叫。這種函式稱為遞迴函式。c語言允許函式的遞迴呼叫。

在遞迴呼叫中,主調函式又是被調函式。執行遞迴函式將反覆呼叫其自身,每呼叫一次就進入新的一層。

例如有函式f如下:

intf(int

x)這個函式是一個遞迴函式。但是執行該函式將無休止地呼叫其自身,這當然是不正確的。為了防止遞迴呼叫無終止地進行,必須在函式內有終止遞迴呼叫的手段。

常用的辦法是加條件判斷,滿足某種條件後就不再作遞迴呼叫,然後逐層返回。下面舉例說明遞迴呼叫的執行過程。

【例】用遞迴法計算n!

用遞迴法計算n!可用下述公式表示:

n!=1

(n=0,1)

n×(n-1)!

(n>1)

按公式可程式設計如下:

long

ff(int

n)main()

程式中給出的函式ff是一個遞迴函式。主函式呼叫ff

後即進入函式ff執行,如果n<0,n==0或n=1時都將結束函式的執行,否則就遞迴呼叫ff函式自身。由於每次遞迴呼叫的實參為n-1,即把n-1的值賦予形參n,最後當n-1的值為1時再作遞迴呼叫,形參n的值也為1,將使遞迴終止。然後可逐層退回。

下面我們再舉例說明該過程。設執行本程式時輸入為5,即求5!。在主函式中的呼叫語句即為y=ff(5),進入ff函式後,由於n=5,不等於0或1,故應執行f=ff(n-1)*n,即f=ff(5-1)*5。

該語句對ff作遞迴呼叫即ff(4)。

進行四次遞迴呼叫後,ff函式形參取得的值變為1,故不再繼續遞迴呼叫而開始逐層返回主調函式。ff(1)的函式返回值為1,ff(2)的返回值為1*2=2,ff(3)的返回值為2*3=6,ff(4)的返回值為6*4=24,最後返回值ff(5)為24*5=120。

7樓:事事有成

void fact(int n)

}應該是這樣吧,在用個main函式呼叫它就行了

8樓:匿名使用者

#include

int f(int n)

void main()

9樓:一頁凌風

#include

using namespace std;

long int fact(int j);

void main()

long int fact(int j)

在c語言中用遞迴呼叫的方法求n!

10樓:璐人釔

double jiecheng(double n)

return n * jiecheng(n - 1);}

11樓:匿名使用者

求n的階乘,遞迴,參考**如下:

#include

double fac(int n)

int main()

12樓:匿名使用者

#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

13樓:匿名使用者

int fun(int x)

void main()

因為n=n*(n-1)!

所以主要思想是這樣,如果要求的n值為1,則返回1否則返回n*(n-1)!

14樓:匿名使用者

int getn(int n)

如何用c語言編寫函式實現用遞迴法求fibonacci數列前n項的值, n的值由鍵盤輸入?

15樓:聽不清啊

設此所求的數列為:0,1,1,2,3,5,8,13,21,……(n=0,1,2,3,……)

#include

long fibonacci(int n)int main()

16樓:匿名使用者

#include "stdio.h"

int fab(int n)

void main()

17樓:匿名使用者

#include "stdio.h"

int fibonacci(int a)

else

return sum;

}void main()

sum=fibonacci(n);

printf("%d\n",sum);}

不用遞迴方式,編寫函式fun,求任一整數m的n次方

18樓:匿名使用者

本文以c語言為例來

,不用自

遞迴方式編碼如下:

#include

long fun1(int n)

long fun2(int n)

int main()

擴充套件資料用遞迴方式求解方法:

#include

long fun(int m,int n)main()

19樓:匿名使用者

我特意測試了一下你的寫的函式,應該沒什麼錯誤的,找來找去終於找到了解決辦版法:

printf("輸入m和n的值:");

scanf("%d",&m);

scanf("%d",&n);

將輸入的兩個權數分開用兩個scanf函式接受就可以了。

如果寫一個scanf函式來接受,我發現無論如何m,n的值都接受不了,不知道怎麼回事。

scanf函式真是個奇怪的函式。

20樓:匿名使用者

那段沒問來題,你的程式的源問題是main函式看不bai到你後面定義的函式,你du只需zhi要把main函式移動

到其他所有函式定dao義的後面就可以了。或者在main函式定義之前加上下面的兩行函式宣告:

long fun(int, int);

void yzj();

21樓:願有好心情

1)可能輸入本身錯誤

2)可能檔案不存在

3)可能檔案內容錯

用c語言編寫程式從鍵盤輸入一個正整數數n,輸出n!

22樓:匿名使用者

程式設計實現計算n!,也就是n*(n-1)*(n-2)*....*1,可以通過遞迴函式來實現,具體實現方法:

#include

int func(int n)

void main()

在以上程式**中,func()為遞迴函式,主函式main()中接收鍵盤輸入整數值後,呼叫func()遞迴函式,首層m=n*(n-1)!,繼續遞迴呼叫,m=n*(n-1)(n-2)!,這樣逐層遞迴,直到計算出n!。

程式輸出結果如下:

23樓:跪著作揖

#include //定義標頭檔案

int main(  )                   //宣告主函式

輸出j

return 0;                        //返回主函式值

}擴充套件資料

其他方法得到n的階乘:

#include

int prime(int x);

void main(  )

int prime(int x)

else

return s;

24樓:匿名使用者

源程式如下:

#include //定義標頭檔案

int main()//宣告主函式

printf("%d!=%d\n",n,jc);//輸出jcreturn 0;//返回主容函式值

} vc++測試如下:

25樓:匿名使用者

晚上好樓

來主,我自已經編譯通過請看

圖 謝謝採納!

#include

int cacu(int n)

void main()圖:

26樓:匿名使用者

#include

int main()

printf("%d的階乘 = %d\n", input, result);}

27樓:德勝介休

考慮資料

溢位#include

void cheng(int a,int n)}}void jiecheng(int a,int n)}void main()

a[0]=1;

scanf("%d",&n);

jiecheng(a,n);

for(i=0;i<1000;i++)

for(j=s;j>=0;j--)

printf("%d",a[j]);

}執行效果:

輸入回:34

輸出答:295232799039604140847618609643520000000

c語言從鍵盤上輸入一個整數n,求n!要求:n!過程用函式實現。

28樓:水撒了一地

#include

int f(int x);

void main()

int f(int x)

return sum;}

29樓:匿名使用者

#include

int fun(int n_);

void main()

int fun(int n_)

return res;}

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 用函式遞迴求1 2 到n的問題

const int len 66 const int divs 6 void subdivide char ar,int low,int high,int level int tmain int argc,tchar ar return 0 將陣列ar子分,並在子分構成中不斷在子分的子串中間賦值為 ...

C語言怎麼用遞迴法求階乘,c語言怎麼用遞迴呼叫函式的方法求n的階乘?

辜亭晚示未 n的階乘,就是從1開始乘到n,即1 2 3 n 1 n。即n 1 2 3 n 1 n。而 n 1 1 2 3 n 1 所以可以得出,n n 1 n。由這個概念,可以得出遞迴求階乘函式fact的演算法 1如果傳入引數為0或1,返回1 2對於任意的n,返回n fact n 1 如下 int ...