?? 例8.8.txt
字號:
例 8.8用遞歸方法求n!。
求n!可以用遞推方法,即從1開始,乘2,再乘3……
一直乘到n。這種方法容易理解,也容易實現。遞推法的特點是從一個已知的事實出發,按一定規律推出下一個事實,再從這個新的已知的事實出發,再向下推出一個新的事實……這是和遞歸不同的。
求n!··也可以用遞歸方法,即5!等于4!×5,而4!=3!×4…1!=1。可用下面的遞歸公式表示:
n!=1(n=0,1)
n·(n-1)!(n>1)
有了例7.7的基礎,很容易寫出本題的程序:
float fac(int n)
{
float f;
if(n<0){ printf("n<0,dataerror!");f=-1;}
else if(n==0‖n==1) f=1;
else f=fac(n-1)*n;
return(f);
}
main()
{
int n;
float y;
printf("input a integer number:");
scanf("%d",&n);
y=fac(n);
printf("%d!=%15.0f",n,y);
}
運行情況如下:
input a integer number:10
?? 快捷鍵說明
復制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -