#include?stdio.h
創(chuàng)新互聯(lián)專注于清豐企業(yè)網(wǎng)站建設(shè),響應(yīng)式網(wǎng)站設(shè)計(jì),商城建設(shè)。清豐網(wǎng)站建設(shè)公司,為清豐等地區(qū)提供建站服務(wù)。全流程定制開發(fā),專業(yè)設(shè)計(jì),全程項(xiàng)目跟蹤,創(chuàng)新互聯(lián)專業(yè)和態(tài)度為您提供的服務(wù)
int?fun(int?n){
int?k;
if(n==0)?k=1;
else?k=n*fun(n-1);
return?k;
}
//以上為運(yùn)用遞歸求階乘的函數(shù),以下為主函數(shù)
void?main()
{
int?n;
scanf("%d",n);
printf("%d!=%d",n,fun(n));
}
運(yùn)行示例:
1、打開vc6.0,新建一個(gè)vc項(xiàng)目,添加頭文件,添加一個(gè)空的main函數(shù),這里先定義一個(gè)用來求階乘的函數(shù),函數(shù)的參數(shù)為i,階乘就是不斷的和前面的一個(gè)數(shù)相乘,這里就是不斷和fact函數(shù)相乘,之后編寫主函數(shù)的內(nèi)容:
2、在main函數(shù)定義int類型變量sum,然后調(diào)用fact()將返回值賦予sum,最后使用printf打印sum的值:
3、最后編寫程序好后,來運(yùn)行程序觀察結(jié)果,這里可以看到打印出了6的階乘。以上就是C語言用遞歸的方式求階乘的過程:
舉例:用遞歸方法求n;
#includestdio.h
int main()
{
int n;
int y;
printf("input a integer number:");
scanf("%d",n);
y=fac(n);
printf("%d!=%d\n",n,y);
return 0;
}
int fac(int n)
{
int f;
if(n0)
printf("n0,data error!");
else if(n==0||n==1)
f=1;
else
f=fac(n-1)*n;
return(f);
}
擴(kuò)展資料:
return用法:
return返回一個(gè)數(shù)值的意思就是把returnlt;表達(dá)式gt;后面表達(dá)式的值返回給調(diào)用他的函數(shù)。舉個(gè)例子:
int sum(int i,int j)
{
return i+j;
printf("這個(gè)語句不會(huì)被執(zhí)行,因?yàn)樵撟雍瘮?shù)執(zhí)行到上面的return語句就無條件結(jié)束了");
}
main()
{
int a=10,b=11,c;
c=sum(a,b);
printf("%d",c);
}
程序的輸出為:
21
這個(gè)21從何而來呢main函數(shù)調(diào)用sum(a,b)函數(shù)時(shí)將a的值賦給i,b的值賦給j,上面說了return i+j;會(huì)計(jì)算i+j的值也就是結(jié)果等于21,并將21帶回給調(diào)用它的函數(shù),即c=sum(a,b);相當(dāng)于c=21,這個(gè)21就是由sum(a,b)中的return反回來的。
1、首先打開vc6.0,新建一個(gè)vc項(xiàng)目。
2、接下來需要添加頭文件。
3、添加main主函數(shù)。
4、定義一個(gè)用來求階乘的函數(shù)。
5、在main函數(shù)定義int類型變量sum。
6、調(diào)用fact(),并將返回值賦予sum。
7、使用printf打印sum。
8、運(yùn)行程序,看看結(jié)果。
#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||n10)
{
printf("error");
return 0;
}
else if(n==1) return 1;
else return n*f(n-1);
}