① 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<表達式>後面表達式的值返回給調用他的函數。舉個例子:
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函數相乘,之後編寫主函數的內容: