如何使用递归方程实现 n!+c

#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;
}