简单C++程序请教

来源:百度知道 编辑:UC知道 时间:2024/06/04 12:46:39
long func(int n)
{
if(n==1 return);
else
return (n+1)*func(n-1);
}
int main()
{
cout<<func(4)<<endl;
}
请高手帮忙看看 说明输出结果 并做简单讲解
最后一句的func(4)换成func(3)又是什么输出结果呢?

if(n==1 return);
else
return (n+1)*func(n-1);
这里有点问题。
可以改为 if (n==1) return 1;
这样,当函数递归执行到形式参数n=1时,子函数func就会返回1,从而结束递归。
结果是60.
讲的不好,不是高手~……

if(n==1 return);
function must return a value
我认为应改为:if(n==1) return 1;
func(4)=5*4*3;
递归计算。

第一,if(n==1 return); 错误
第二,if (n==1) return -1;
如果return -1的结果如下
func(3)是-12
func(4)是-60