開心生活站

位置:首頁 > 綜合知識 > 

c語言遞迴函式怎麼寫

1.c語言 函式遞迴呼叫的簡單例子

=#include <stdio.h>

c語言遞迴函式怎麼寫

/// 求階乘函式

/// 遞迴思想

/// n! = n * (n-1) * (n-2) * 。 * 1

/// n! = n * [(n-1) * (n-2) * 。 * 1]

/// n! = n * (n-1)! 遞迴方程

/// 這是遞迴實現

unsigned Factorial(unsigned int n)

{

if (n == 0) return 1; // 對於0的階乘,當n=0時,遞迴返回

return n * Factorial(n-1); // 遞迴呼叫

}

void main()

{

int n = 3;

printf("3! = %d",Factorial(n));

}

2.如何使用C語言遞迴函式

遞迴:函式下一次的引數是函式自身上一次的輸出值。(也就是說,函式的下一次取決於上一次的結果,自身依賴)。

也正是因為如此,這樣的函式必須有終止值(即遞迴必須有一個條件限定)。否則就會進入無窮迴圈。

“遞迴”分成“直接遞迴”、“簡介遞迴”。具體可以參考我的部落格(點選, ,檢視,有程式碼有具體示例解釋)。

給出一個求n!的C遞迴:

int Fun(int n)

{

if (n==0 || n==1) return 1;

return Fun(n-1)*n;

}

Sorry, 程式略有寫錯誤,主函式請這樣修改:

int main() { int x=0,n=0; printf("輸入x:"); scanf("%d",&x); printf("輸入n:"); scanf("%d",&n); double sum=0; for(int i=1;i<=n;i+=2) { sum+=Result(x,n); }printf("結果是:%lf",sum); system("pause"); }

3.c語言中的遞迴

原發布者:zhoujiahaohao2

1.編寫計算X的Y次冪的遞迴函式getpower(intx,int),並在主程式中實現輸入輸出。#include"stdio.h"longgetpower(intx,inty){if(y==1)returnx;elsereturnx*getpower(x,y-1);}voidmain(){intnum,power;longanswer;printf("pleaseinputanumber:");scanf("%d",&num);printf("pleaseinputthenumber'spowerseries:");scanf("%d",&power);answer=getpower(num,power);printf("結果是:%ldn",answer);}結果說明:輸入61再輸入5求得61的5次冪為844596301.2編寫計算學生年齡的遞迴函式。#includeintage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;returnc;}voidmain(){intn=5;printf("thefivestudent'sageis:%dyearsoldn",age(n));}結果說明:第五個學生的年齡為18歲。3.編寫遞迴函式實現Ackman函式。#includeAcm(intm,intn){if(m==0)returnn+1;elseif(n==0)returnAcm(m-1,1);elsereturnAcm(m-1,Acm(m,n-1));}intmain(){printf("Acm(2,1)=%dn",Acm(2,1));printf("Acm(3,2)=%dn",Acm(3,2));return0;}結果說明:利用遞迴函式求得Acm(2,1)=5,Acm(3,2)=29.實驗小結:

4.C語言 遞迴函式

//方法一,不需將轉換後的字元儲存在字元陣列中

#include

void change(int );

int main()

{

int n;

scanf("%d",&n);

change(n);

printf("n");

return 0;

}

void change(int num)

{

if(num==0)return ;

change(num/10);

printf("%d",num%10);

}

//方法二,先將轉換後的字元儲存在字元陣列中

#include

#define LEN 100

int m=0;

void change(int ,char *);

int main()

{

int n,i;

char a[LEN];

for(i=0;ia[i]='