#include
using namespace std;
int odd(int o);
int even(int e);
int function(int a,int b,int i,int j);
int a,b,i,j;
int main(){
cout<<"Please enter the following four positive integers in order. They will be assigned to a, b, I, and j"<<endl;
cin>>a>>b>>i>>j;
function(a,b,i,j);
cout<<function(a,b,i,j)<<endl;
}
int function(int a,int b,int i,int j) {
int add=0,ans= 0;
if(i>2) {
for (; i < j; i++) {
if (i % 2 == 0) {
ans = even(i);
}
else if (i % 2 == 1){
ans = odd(i);
}
}
add =ans+add;
}
else if(i==1){
add=a;
}
else if(i==2){
add=b;
}
return add;
}
int odd(int o){
int res1=a;
if(o<=2){
res1=a;
}
else{
res1=even(o-1)+o*odd(o-2);}
return res1;
}
int even(int e) {
int res2=b;
if (e <= 2) {
res2 = b;
}
else {
res2 = e * odd(e - 1) - even(e - 2);
}
return res2;
}
程序没有按照要求进行输出,不知道哪里有bug。请给出一个解决方案
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
3条回答 默认 最新
- CSDN专家-link 2021-07-05 23:19关注
这是一个递归函数啊
int fun(int a,int b,int n) { if(n<0) return 0; if(n==1) return a; if(n==2) return b; if(n%2 == 0) return n*fun(n-1)-fun(n-2); return fun(n-1)+n*fun(n-2); } void main() { int a,b,i,j; scanf("%d %d %d %d",&a,&b,&i,&j); int sum = 0; for(int k=i+1;k<j;k++) sum += fun(k); printf("总和为:%d",sum); }
本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 python中transformers可以正常下载,但是没有办法使用pipeline
- ¥50 分布式追踪trace异常问题
- ¥15 人在外地出差,速帮一点点
- ¥15 如何使用canvas在图片上进行如下的标注,以下代码不起作用,如何修改
- ¥15 Windows 系统cmd后提示“加载用户设置时遇到错误”
- ¥50 vue router 动态路由问题
- ¥15 关于#.net#的问题:End Function
- ¥15 无法import pycausal
- ¥15 weditor无法连接模拟器Local server not started, start with?
- ¥20 6-3 String类定义