[问题描述]请编写一个函数, 实现如下公式计算:输入整 数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;
}