```
代码修改如下:如有帮助,请采纳一下,谢谢。
#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;
}