c++求问代码没有报错,为什么输出一直是零

img

img

```

代码修改如下:如有帮助,请采纳一下,谢谢。

#include <iostream>
using namespace std;
int F(int n,int a,int b)
{
    if (n == 1)
        return a;
    else if(n==2)
        return b;
    else
    {
        if(n>2 && n%2 == 1)
            return F(n-1,a,b) + n*F(n-2,a,b);
        else if(n>2 && n%2 ==0)
            return n&F(n-1,a,b) -F(n-2,a,b);
    }
}

int main()
{
    int a,b,i,j;
    int result = 0;
    cout << "请输入四个整数,并用空格隔开"<<endl;
    cin >> a;
    cin >> b;
    cin >> i;
    cin >> j;

    for (int t = i;t <j;t++)
        result += F(t,a,b);
    
    cout << result <<endl;
    return 0;

}

F中

n==1 return a

n==2 return b

if里用&&,不要用||

且的关系使用&&符号

#include using namespace std;

int F(int n) { int a = 0; int b = 0; cin >> a; cin >> b;

if (n == 0)
    return a;
else if (n == 1)
    return b;
if (n > 2 && n % 2 == 1)
    return F(n - 1) + n * F(n - 2);
if (n > 2 && n % 2 == 0)
    return n * F(n - 1) - F(n - 2);

}

int main () {

int i = 0;
int j = 0;
int result = 0;
cout << "输入四个整数,并用空格隔开" <<endl;

cin >> i;
cin >> j;

for (int i = i+1 ; i < j; i++)
        result = result + F(i);



cout << result << endl;

return 0; }

我帮你改好了,你的错误挺多的,你对照以下看看吧,我要睡觉了

#include<stdlib.h>
#include<iostream>
using namespace std;
int F(int n,int a,int b) {
    if (n == 1)
        return a;
    else if (n == 2)
        return b;
    if (n > 2 && n % 2 !=0)
        return F(n - 1,a,b) + n * F(n - 2,a,b);
    if (n > 2 && n % 2 == 0)
        return n * F(n - 1,a,b) - F(n - 2,a,b);
    return 0;
}
int main() {
    int m = 0,i,j,a,b;
    int result = 0;
    cout << "输入四个整数,并用空格隔开" << endl;
    cin>>i>>j>>a>>b;
    for (m = i + 1; m < j; m++)
        result += F(m,a,b);
    cout << result << endl;
    return 0;
}

img