【正确答案】正确答案:int funl(int n)//使用递归计算阶乘 { if(n<=0)//n小于等于0,直接返回0 return 0; if(n==1) //n等于1直接返回1 return 1; return n*funl(n—1);//n大于等于1。通过递归计算n! }; //不使用递归计算阶乘 int fun2(int n) { i f(n<=0)//n小于0,直接返回0 return 0; int res=1; //初始化阶乘存放变量res for(int i=1;i<=n;i++) //通过循环计算n! { Res*=i; } return res; }
【答案解析】解析:(1)该程序功能足对阶乘的实现。其中,阶乘的计算公式定义为: fn!=n*(c—1)*(c一2)*… >1 n< [n=1计算公式:n!=1 公式分为参数n是1和大于0的两种情况,例如:1的阶乘1!=1;5的阶乘5 1=5×4×3×2×1。