.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条)

报告相同问题?

悬赏问题

  • ¥60 求一个简单的网页(标签-安全|关键词-上传)
  • ¥35 lstm时间序列共享单车预测,loss值优化,参数优化算法
  • ¥15 基于卷积神经网络的声纹识别
  • ¥15 Python中的request,如何使用ssr节点,通过代理requests网页。本人在泰国,需要用大陆ip才能玩网页游戏,合法合规。
  • ¥100 为什么这个恒流源电路不能恒流?
  • ¥15 有偿求跨组件数据流路径图
  • ¥15 写一个方法checkPerson,入参实体类Person,出参布尔值
  • ¥15 我想咨询一下路面纹理三维点云数据处理的一些问题,上传的坐标文件里是怎么对无序点进行编号的,以及xy坐标在处理的时候是进行整体模型分片处理的吗
  • ¥15 一直显示正在等待HID—ISP
  • ¥15 Python turtle 画图