James0917 2022-07-18 21:39 采纳率: 77.8%
浏览 28
已结题

关于#c++#的问题:可是它答案要最简分数

C++题目:
S = 1+1/2+1/3+1/4·+1/n
键盘输入n,求S。
小数还挺简单,可是它答案要最简分数
数据范围:
n<=12(是不是太小了

求!

  • 写回答

2条回答 默认 最新

  • it_hao528 2022-07-18 22:28
    关注

    1、思路分析:最简分数即分母为1~n的最小公倍数,分子相加即可。
    2、具体实现代码参考如下:

    int main() {
        int n;
        cin >> n;
        // 分母 最小公倍数
        int d = n;
        while (d) {
            int flag = 1;
            for (int i = 1; i <= n; i++) {
                if (d % i != 0) {
                    flag = 0;
                    d++;
                    break;
                }
            }
            if (flag == 1) {
                break;
            }
        }
        // 分子
        int m = 0;
        for (int i = 1; i <= n; i++) {
            m += d / i;
        }
        cout << "S = " << m << "/" << d << endl;
        return 0;
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 已结题 (查看结题原因) 7月19日
  • 已采纳回答 7月19日
  • 创建了问题 7月18日

悬赏问题

  • ¥15 php 将rtmp协议转hls协议,无法播放
  • ¥15 miniconda安装不了
  • ¥20 python代码编写
  • ¥20 使用MPI广播数据遇到阻塞
  • ¥15 TinyMCE如何去掉自动弹出的“链接…”工具?
  • ¥15 微信支付转账凭证,如何解决
  • ¥15 在win10下使用指纹登录时,界面上的文字最后一个字产生换行现象
  • ¥20 使用AT89C51微控制器和MAX7219驱动器来实现0到99秒的秒表计数,有开始和暂停以及复位功能,下面有仿真图,请根据仿真图来设计c语言程序
  • ¥15 51单片机 双路ad同步采样
  • ¥15 使用xdocreport 生成word