调和级数(harmony)

来源:互联网 发布:360软件卸载大师 编辑:程序博客网 时间:2024/05/17 03:16

输入正整数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;}
原创粉丝点击