读书人

函数的递归调用求阶乘的有关问题

发布时间: 2012-03-12 12:45:33 作者: rapoo

函数的递归调用求阶乘的问题
#include <iostream>
using namespace std;
int factorial(int n);
int main()
{
cout<<factorial(8)<<"\n";
return 0;
}
int factorial(int n)
{
if((n=0)||(n=1))
return 1;
else
{
return n*factorial(n-1);
}
}
编写了一段程序,利用函数的递归调用求阶乘的问题,编译的时候出来的答案却为1,求高手看看问题处在哪里?

[解决办法]
if((n=0)||(n=1))
return 1;
应该是 if (n == 1 || 1 == n)

[解决办法]
if((n==0)||(n==1))
原条件写成赋值、始终为真

读书人网 >C++

热点推荐