2301_80075873 2023-11-05 17:22 采纳率: 83.3%
浏览 1
已结题

关于数列求和的一个问题

img

S(n)表示数列{1/n}的n项求和,但不知道为什么一直错的

  • 写回答

1条回答 默认 最新

  • CSDN-Ada助手 CSDN-AI 官方账号 2023-11-05 20:26
    关注

    【以下回答由 GPT 生成】

    问题在于数列S(n)的递归求和函数中,1/n 这个操作是整数除法,会导致结果被截断为0。修正的方法是将 1/n 转换为 1.0/n,确保除法操作会得到一个浮点数结果。

    以下是修正后的代码:

    #include <stdio.h>
    
    double S(int n) {
        if (n == 1) {
            return 1.0;
        } else {
            return S(n-1) + 1.0/n;
        } 
    }
    
    int main() {
        int k;
        scanf("%d", &k);
        for (int n = 1; ; n++) {
            if (S(n) > k) {
                printf("%d\n", n);
                break;
            }
        }
        return 0;
    }
    

    在修正后的代码中,将 S(n) 函数的返回类型改为 double,并将 1/n 操作改为 1.0/n。这样可以确保得到正确的浮点数结果。



    【相关推荐】



    如果你已经解决了该问题, 非常希望你能够分享一下解决方案, 写成博客, 将相关链接放在评论区, 以帮助更多的人 ^-^
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

问题事件

  • 系统已结题 11月16日
  • 已采纳回答 11月8日
  • 创建了问题 11月5日

悬赏问题

  • ¥15 jdk环境变量配置,cmd中Javac运行不了,找不到问题求解答
  • ¥100 速求!商品购买力最优化问题(用遗传算法求解,给出python代码)
  • ¥15 虚拟机检测,可以是封装好的DLL,可付费
  • ¥15 kafka无法正常启动(只启动了一瞬间会然后挂了)
  • ¥30 使用matlab将观测点聚合成多条目标轨迹
  • ¥15 Workbench中材料库无法更新,如何解决?
  • ¥20 如何推断此服务器配置
  • ¥15 关于github的项目怎么在pycharm上面运行
  • ¥15 内存地址视频流转RTMP
  • ¥100 有偿,谁有移远的EC200S固件和最新的Qflsh工具。