输入正整数n,输出H(n)=1+1/2+1/3+…+1/n的值,保留3位小数。
Input
输入正整数n
Output
输出H(n)=1+1/2+1/3+…+1/n的值,保留3位小数。
Sample Input
3
Sample Output
1.833
代码:
//本题除了正整数n和main函数是int型的,其他全部都是double型!!!
#include<iostream>
#include<stdio.h>
#include<stdlib.h>
#include<math.h>
#include<algorithm>
using namespace std;
double H(int n)
{
double cnt=0.0;
double k;
for(double i=1;i<=n;i++) //注意这里是double i !!!如果是int i,则 1/i是整数除以整数,结果k还是一个整数、而不是浮点数
{
k=1/i;
cnt=cnt+k;
}
return cnt;
}
int main()
{
int n;
while(scanf("%d",&n)!=EOF)
{
printf("%.3lf\n",H(n));
}
return 0;
}
计算H(n)级数
本文介绍了一个C++程序,该程序接收一个正整数n作为输入,并计算H(n)=1+1/2+1/3+…+1/n的值,结果保留三位小数。通过使用double类型变量确保了计算精度。
11万+

被折叠的 条评论
为什么被折叠?



