當前位置:首頁 » 編程語言 » c語言函數遞歸求階乘
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言函數遞歸求階乘

發布時間: 2022-01-20 01:21:00

c語言用 遞歸調用函數 的方法求n的階乘,要具體解釋一下,具體到每一行。

手機打的,排版不周,已調試。
#include

y(x)
{
if(x=0)
return
1;
eles
return
x*y(x-1);}
void
main()
{

int
n,result;

printf("請輸入n的值:");

scanf("%d",&n);

result=y(n);

printf("%d!=%d\n",n,result);
}

② C語言怎麼用遞歸法求階乘

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

③ 關於c語言用遞歸計算階乘 麻煩詳細說明

樓主我舉個例子來說吧,可以一講就懂了。
計算facto(5):

首先facto(5):
x不等於1,做return (5 * facto(5-1));
發覺facto(5-1)=facto(4)也不知道,繼續

facto(4):
x不等於1,做return (4* facto(4-1));
發覺facto(4-1)=facto(3)也不知道,繼續

facto(3):
x不等於1,做return (3 * facto(3-1));
發覺facto(3-1)=facto(2)也不知道,繼續

facto(2):
x不等於1,做return (2 * facto(2-1));
發覺facto(2-1)=facto(1)也不知道,繼續

facto(1):
這個會了,是返回1,facto(1)=1

回到facto(2),返回 (2 * facto(2-1))=2

回到facto(3),返回 (3 * facto(3-1))=6

回到facto(4),返回 (4 * facto(3-1))=24

回到facto(5),返回 (5 * facto(5-1))=120

現在facto(5)也做完了,就結束了,返回到主程序,返回facto(5)的值120。

樓主,肯定對遞歸函數特別了解了吧。呵呵

④ 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的階乘:
import
java.util.Scanner;

//遞歸算階乘
public
class
Demo2
{
//定義一個算階乘的方法jieCheng()
public
static
int
jieCheng(int
n){
if(n==1){

//n值為1時返回1,跳出方法,停止計算
return
1;
}
return
n*jieCheng(n-1);

//當前值*(當前值-1)*(當前值-1-1)...*1
}

//main方法測試
public
static
void
main(String[]
args)
{
Scanner
input=new
Scanner(System.in);
System.out.print("請輸入您要計算的階乘數:");
int
n=input.nextInt();
System.out.println(n+"的階乘結果是"+jieCheng(n));
}
}

1到正整數N的累加:
import
java.util.Scanner;

public
class
Demo3
{

//main方法測試

public
static
void
main(String[]
args)
{
Scanner
input=new
Scanner(System.in);
System.out.print("請輸入要計算的數:");
int
n=input.nextInt();
System.out.println("1到"+n+"的和是:"+he(n));
}

//定義一個算階乘的方法he()

public
static
int
he(int
n){
if(n==1){
return
1;
}
return
n+he(n-1);
}
}

⑥ c語言函數遞歸求階乘的問題 求助大佬們

求階乘遞歸函數調用時,num必須是大於0的,否則該遞歸函數無法結束,成為死循環,則沒有輸出值

⑦ 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);

}

(7)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反回來的。

⑧ 用c語言的遞歸求階乘

修改後的C語言程序:

#include"stdio.h"

intok(inta)
{
if(a==1)
a=1;
else
a=a*ok(a-1);
returna;
}

voidmain()
{
intb,n;
scanf("%d",&b);
n=ok(b);
printf("b!=%d",n);
}

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

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