導航:首頁 > 編程語言 > 計算遞歸函數編程

計算遞歸函數編程

發布時間:2023-02-09 10:04:52

① C語言編程:編寫一個計算此函數的遞歸函數。幫忙給出運算結果,謝謝

#include<stdio.h>
intack(intm,intn);
intmain()
{
intm,n;
while(1)
{
printf("輸入兩個大於等於0的正整數m,n:");
scanf("%d%d",&m,&n);
printf("輸出:%d ",ack(m,n));
}
return0;
}
intack(intm,intn)
{
if(m==0&&n>0)
returnn+1;
if(m>0&&n==0)
returnack(m-1,1);
if(m>0&&n>0)
returnack(m-1,ack(m,n-1));
return-1;
}

② 編寫一個遞歸函數計算從1加到100的和

int fun(int x)
{
if(x>1)
return x+fun(x-1);
else
return x;
}
main()
{
int sum;
sum=fun(100);
printf("sum=%d ",sum);
}

(2)計算遞歸函數編程擴展閱讀:

編程語言中,函數Func(Type a,……)直接或間接調用函數本身,則該函數稱為遞歸函數。遞歸函數不能定義為內聯函數。

在數學上,關於遞歸函數的定義如下:對於某一函數f(x),其定義域是集合A,那麼若對於A集合中的某一個值X0,其函數值f(x0)由f(f(x0))決定,那麼就稱f(x)為遞歸函數。

遞歸函數是一種計算過程,如果其中每一步都要用到前一步或前幾步的結果,稱為遞歸的。用遞歸過程定義的函數,稱為遞歸函數,例如連加、連乘及階乘等。凡是遞歸的函數,都是可計算的,即能行的 。

古典遞歸函數,是一種定義在自然數集合上的函數,它的未知值往往要通過有限次運算回歸到已知值來求出,故稱為「遞歸」。它是古典遞歸函數論的研究對象。

參考資料:遞歸函數 網路

③ C++編程:用遞歸函數求n!,其中n從鍵盤輸入。

一個函數在它的函數體內調用它自身稱為遞歸調用。這種函數稱為遞歸函數。C語言允許函數的遞歸調用。在遞歸調用中,主調函數又是被調函數。執行遞歸函數將反復調用其自身,每調用一次就進入新的一層。
例如有函數f如下:
int
f(int
x)
{
int
y;
z=f(y);
return
z;
}
這個函數是一個遞歸函數。但是運行該函數將無休止地調用其自身,這當然是不正確的。為了防止遞歸調用無終止地進行,必須在函數內有終止遞歸調用的手段。常用的辦法是加條件判斷,滿足某種條件後就不再作遞歸調用,然後逐層返回。下面舉例說明遞歸調用的執行過程。
【例】用遞歸法計算n!
用遞歸法計算n!可用下述公式表示:
n!=1
(n=0,1)
n×(n-1)!
(n>1)
按公式可編程如下:
long
ff(int
n)
{
long
f;
if(n<0)
printf("n<0,input
error");
else
if(n==0||n==1)
f=1;
else
f=ff(n-1)*n;
return(f);
}
main()
{
int
n;
long
y;
printf("\ninput
a
inteager
number:\n");
scanf("%d",&n);
y=ff(n);
printf("%d!=%ld",n,y);
}
程序中給出的函數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。

④ 編寫一個遞歸函數計算從1加到100的和

int fun(int x)
{
if(x>1)
return x+fun(x-1);
else
return x;
}
void main()
{
int sum;
sum=fun(100);
printf("sum=%d ",sum);
}

(4)計算遞歸函數編程擴展閱讀

編程語言中,函數Func(Type a,……)直接或間接調用函數本身,則該函數稱為遞歸函數。遞歸函數不能定義為內聯函數。

在數學上,關於遞歸函數的定義如下:對於某一函數f(x),其定義域是集合A,那麼若對於A集合中的某一個值X0,其函數值f(x0)由f(f(x0))決定,那麼就稱f(x)為遞歸函數。

一個含直接或間接調用本函數語句的函數被稱之為遞歸函數,在上面的例子中能夠看出,它必須滿足以下兩個條件:

1) 在每一次調用自己時,必須是(在某種意義上)更接近於解;

2) 必須有一個終止處理或計算的准則。

⑤ C語言編程:用函數遞歸法求Fibonacci數列的前n項·

#include <stdio.h>

long int F(int n)

{

if (n==1||!n) {

return n;

}

else return F(n-1)+F(n-2);

}

int main(void)

{

int i,n;

printf("n=");

scanf("%d",&n);

for (i=0; i<n; i++) {

printf("%-10ld",F(i));

}

return 0;

}

在數理邏輯和計算機科學中

遞歸函數或μ-遞歸函數是一類從自然數到自然數的函數,它是在某種直覺意義上是"可計算的" 。事實上,在可計算性理論中證明了遞歸函數精確的是圖靈機的可計算函數。遞歸函數有關於原始遞歸函數,並且它們的歸納定義(見下)建造在原始遞歸函數之上。但是,不是所有遞歸函數都是原始遞歸函數 — 最著名的這種函數是阿克曼函數。

以上內容參考:網路-遞歸函數

閱讀全文

與計算遞歸函數編程相關的資料

熱點內容
文件夾圖標如何改成公會logo 瀏覽:973
怎樣創建job文件夾 瀏覽:831
介紹單片機外設的書籍推薦 瀏覽:56
通達信雙柱擒牛指標源碼 瀏覽:467
內存太大解壓失敗怎麼辦 瀏覽:441
linuxmakefile解析 瀏覽:777
單片機原理與應用李林功 瀏覽:39
pythonorm框架有哪些 瀏覽:431
indesign轉pdf 瀏覽:483
javaweb找源碼 瀏覽:26
浪潮物理伺服器如何重啟 瀏覽:602
aes加密性能下降 瀏覽:449
linux驅動結構 瀏覽:868
psv安裝壓縮包 瀏覽:613
錦州聯通DNS伺服器地址 瀏覽:115
伺服器佔用太多的網路怎麼辦 瀏覽:936
設置ftp共享文件夾win10 瀏覽:793
伺服器和主機是什麼意思 瀏覽:638
自製透明收納文件夾 瀏覽:164
testflight怎麼下載安卓軟體 瀏覽:180