.cpp.py.c 2021-07-05 23:04 采纳率: 88.9%
浏览 21
已采纳

程序没有按照要求进行输出,不知道哪里有bug。请给出一个解决方案

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

  • 写回答

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);
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥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类定义