#include <iostream>
using namespace std;
int func(int a,int b)
{
if(a>1){
if(a==2)
{
return b+(a*func(a - 1, b));
}
else
{
return a*func(a - 1, b);
}
}
else
{
return a+b;
}
}
int main(int argc,char **argv)
{
cout<<func(4,3)<<endl;
}
这是我自己写的代码,但是有错误。
4!+3=27;
但是我的方程得出来132.
修改如下:
#include <iostream>
using namespace std;
int func(int a, int b)
{
if (a > 1)
{
return a * func(a - 1, 0) + b;
}
else
return 1;
}
int main(int argc, char** argv)
{
cout << func(4, 3) << endl;
}
如果满意请采纳,谢谢
你写的不对。。
入口和出口写错了。
#include <iostream>
using namespace std;
int dec(int a) {
if (a > 1) {
return a * dec(a - 1);
}
else
{
// 最后return 1;
return 1;
}
}
int func(int a, int b)
{
return dec(a) + b;
}
int main(int argc, char** argv)
{
cout << func(4, 3) << endl;
}