本文最后更新于 705 天前,其中的信息可能已经有所发展或是发生改变。

题目描述

输入正整数n 输出H(n)=1+1/2+1/3+….+1/n的值,保留3位有效数字

输入

输入正整数n (n <10^6)

输出

输出H(n)=1+1/2+1/3+….+1/n的值,保留3位有效数字

#define _CRT_SECURE_NO_WARNINGS
#include<bits/stdc++.h>
using namespace std;
int main()
{
    int n, i = 1;
    long double h = 0,x,y;
    while (scanf("%d", &n) != EOF) {
        while (i <= n) {
            long double ii = (int)i;    //将整形i转换为浮点型ii
            h = h +(1/ii);              //不同类型数据之间不能计算!
            i = i + 1;
        }
        printf("%.3Lf\n", h);
        h = 0; i = 1;
    }
    return 0;
}