開心生活站

位置:首頁 > 綜合知識 > 

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]='