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

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

求!

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

问题解决了,最后化简一下分数就ok,谢谢!