當前位置:首頁 » 編程語言 » c語言遞歸階乘

c語言遞歸階乘

發布時間: 2023-01-15 08:57:40

c語言怎麼用遞歸法求階乘

1、首先打開vc6.0,新建一個vc項目。

⑵ c語言遞歸求階乘的問題,我不知道哪裡錯了,求大神解答

#include<stdio.h>

int re(int n);

void main()
{
int n = 0;
long c;
scanf("%d",&n);
c = re(n);
printf("階乘的最後值為:%ld",c);

}

int re(int n)
{

long r;
if(n < 0)
{
printf("n<0,error");
}
else if(n == 0|| n == 1)
{
r = 1;
}
else
{
r = re(n-1)*n;
}
return r;
}

程序大的錯誤沒有,就是你的scanf用錯了,詳情看看我改後的程序!
在scanf只能跟輸入格式符 %d%f%c%f 等等! 記得要給變數取地址!

⑶ c語言求1到n階乘的和用遞歸

1、打開vc6.0,新建一個vc項目,添加頭文件,添加一個空的main函數,這里先定義一個用來求階乘的函數,函數的參數為i,階乘就是不斷的和前面的一個數相乘,這里就是不斷和fact函數相乘,之後編寫主函數的內容:

2、在main函數定義int類型變數sum,然後調用fact()將返回值賦予sum,最後使用printf列印sum的值:

3、最後編寫程序好後,來運行程序觀察結果,這里可以看到列印出了6的階乘。以上就是C語言用遞歸的方式求階乘的過程:

⑷ C語言遞歸 計算階乘

#include <stdio.h>
void f(int);
main()
{
int n;
unsigned long fac;
scanf("%d", &n);
fac=f(n);
if(fac)
printf("%d",fac);
}
void f(int n)
{
if(n<=0||n>10)
{
printf("error");
return 0;
}
else if(n==1) return 1;
else return n*f(n-1);
}

⑸ 怎樣用數據結構(C語言)的遞歸方法實現(1!+2!+3!+。。。+n!)階乘

#include<stdio.h>
long fun(int n)//遞歸單個階乘
{
if(n == 1)
return 1;
else
return fun(n - 1) * n;
}
int main()
{
int n, i;
long num = 0;
scanf("%d", &n);
for(i = n; i > 0; i--)//累加階乘
num += fun(i);
printf("%ld\n", num);
}

⑹ c語言怎麼用遞歸調用函數的方法求n的階乘

1、打開VC6.0軟體,新建一個C語言的項目:

⑺ c語言題:用遞歸法求20個階乘

#include"stdio.h"

doublejc(doublen)
{
if(n>1)
returnjc(n-1)*n;
else
return1;
}
intmain()
{
doublei;
for(i=0;i<=20;i++)
printf("%.0lf ",jc(i));
}
再給一個完全用遞歸的:
#include"stdio.h"

doublejc(doublem,doublen)
{
if(m>1)
{
if(n>1)
{
if(m==n)
printf("%.0lf ",jc(m,n-1)*n);
else
returnjc(m,n-1)*n;
}
else
{
if(m>0)
jc(m-1,m-1);
return1;
}
}
else
{
printf("1 ");
}
}
intmain()
{
doubles[20],m;
m=20;
jc(m,m);
}

⑻ c語言算n的階乘的遞歸演算法

思路:遞歸求階乘函數,如果輸入的參數等於1則返回1,否則返回n乘以該函數下次遞歸。

參考代碼:

#include<stdio.h>
intfun(intn)
{
if(n==1||n==0)return1;//如果參數是0或者1返回1
returnn*fun(n-1);//否則返回n和下次遞歸的積
}
intmain()
{
intn;
scanf("%d",&n);
printf("%d ",fun(n));
return0;
}
/*
5
120
*/

⑼ c語言遞歸求階乘

舉例:用遞歸方法求n;

#include<stdio.h>

int main()

{

int n;

int y;

printf("input a integer number:");

scanf("%d",&n);

y=fac(n);

printf("%d!=%d ",n,y);

return 0;

}

int fac(int n)

{

int f;

if(n<0)

printf("n<0,data error!");

else if(n==0||n==1)

f=1;

else

f=fac(n-1)*n;

return(f);

}

(9)c語言遞歸階乘擴展閱讀:

return用法:

return返回一個數值的意思就是把return&lt;表達式&gt;後面表達式的值返回給調用他的函數。舉個例子:

int sum(int i,int j)

{

return i+j;

printf("這個語句不會被執行,因為該子函數執行到上面的return語句就無條件結束了");

}

main()

{

int a=10,b=11,c;

c=sum(a,b);

printf("%d",c);

}

程序的輸出為:

21

這個21從何而來呢main函數調用sum(a,b)函數時將a的值賦給i,b的值賦給j,上面說了return i+j;會計算i+j的值也就是結果等於21,並將21帶回給調用它的函數,即c=sum(a,b);相當於c=21,這個21就是由sum(a,b)中的return反回來的。

熱點內容
怎麼把伺服器變成普通電腦 發布:2025-07-15 14:39:45 瀏覽:957
甘肅天水首選伺服器地址雲主機 發布:2025-07-15 14:34:32 瀏覽:715
我的世界java版好玩的外國伺服器網址 發布:2025-07-15 14:20:17 瀏覽:110
電腦的外存儲器 發布:2025-07-15 14:19:42 瀏覽:526
淘淘源碼 發布:2025-07-15 14:12:07 瀏覽:881
自己的主機可以搭建伺服器嗎 發布:2025-07-15 14:09:58 瀏覽:775
atilinux 發布:2025-07-15 14:01:42 瀏覽:822
硬碟緩存越大越好 發布:2025-07-15 13:53:22 瀏覽:387
蘋果六怎麼設置密碼鎖 發布:2025-07-15 13:43:28 瀏覽:33
世界上最強的電腦伺服器 發布:2025-07-15 13:41:13 瀏覽:401