问题描述 :
编写程序计算并输出
s= s u m k = 1 sum_{k=1} sumk=1n (1/k) = 1+1/2+1/3+…+1/n 的值。
要求定义并调用函数total(n)计算1+1/2+1/3+…+1/n
注意:此题的main函数如下所示:
int main(){
int n;
scanf("%d",&n);
printf("%.3f\n",total(n));
return 0;
}
或者:
int main(){
int n;
cin>>n;
cout<<fixed<<setprecision(3)<<total(n)<<endl;
return 0;
}
输入说明 :
正整数n,表示前n项求和
输出说明 :
s,表示前n项的和
首尾无空格
输入范例 :
2
输出范例 :
1.500
完整C++代码
简单题,相除的时候使用double类型就好
#include <bits/stdc++.h>
using namespace std;
double total(int num) {
double res = 0;
for (double i = 1; i <= num; i++) {
res += 1 / i;
}
return res;
}
int main()
{
int n;
cin >> n;
cout << fixed << setprecision(3) << total(n) << endl;
return 0;
}