填空题 请补充fun()函数,fun()函数的功能是求n的阶乘。
注意:部分源程序给出如下。
请勿改动main()函数和其他函数中的任何内容,仅在fun()函数的横线上填入所编写的若干表达式或语句。
试题程序:
#include<stdio.h>
long fun(int n)
{
if( 1)
return(n*fun( 2));
return 3;
}
void main()
{
printf("10!=%1d/n", fun(10));
}
【正确答案】
【答案解析】n>1或1<n n-1 1或11或1L [解析] 此题应用的是递归算法,因为10!=109!,9!=98!,8!=87!…依此类推,而1!=1,2!=21!=2,3!=32!=6…,依此可以推出10!,递推算法表示为:
n!=1(n=1或n=0)
n!=n*(n-1)(n>1)