编写一个函数,实现公式计算,在主函数输出。

[问题描述]请编写一个函数, 实现如下公式计算:输入整 数n (1<=n<=10000),计算公式1+1/(1+2)+... +1/(1+2+...+n)的值。要求在主函数中输入整数n,再调用该函数求得公式的值,最后在主函数中输出该值。

[输入形式]从控制台输入整数n (1<=n<=10000)。

[输出形式]控制台输出公式结果:小数点后保留4位。 [样例输入] 4

[样例输出] 1. 6000[样例说明]

输入n为4,求得公式1 + 1/(1+2) + 1/(1+2+3)+ 1/(1+2+3+4)的值为1.6000,小数点后保留4位。

注意:为保证数据的准确性和致性,请使用double数据类型保存计算结果。

[测试数据及对应结果] 1-1. 0000,4 1. 6000,51-1. 961 5,160-1. 9876, 10000- 1. 9998

#include <iostream>

double f(int n) {
    double result = 0.0;
    double d = 0.0;

    for (int i = 1; i <= n; i++) {
        d += i;
        result += 1 / d;
    }

    return result;
}

int main() {
    int n;
    std::cin >> n;

    double result = f(n);
    std::cout.precision(4);
    std::cout << std::fixed << result << std::endl;

    return 0;
}