首页 > 试题广场 >

牛牛学数列2

[编程题]牛牛学数列2
  • 热度指数:39103 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 256M,其他语言512M
  • 算法知识视频讲解
\hspace{15pt}牛牛开始学习数列啦。这次他想计算如下数列的前 n 项和:

\displaystyle H(n) = 1 + \frac{1}{2} + \frac{1}{3} + \cdots + \frac{1}{n}

\hspace{15pt}请计算并输出 H(n) 的值。

输入描述:
\hspace{15pt}在一行中输入一个整数 n,满足 1 \leqq n \leqq 1000


输出描述:
\hspace{15pt}输出一个浮点数,表示 H(n) 的值。注意,由于浮点数存在误差,只要您的答案与标准答案之间的误差不超过 10^{-5},您的答案就会被认为是正确的。
示例1

输入

2

输出

1.500000

说明

H(2)=1+\tfrac{1}{2}=1.5
#include <stdio.h>

int main()
{
    int n;
    scanf("%d",&n);
    double sum=0.0;
    for (int i=1;i<=n;i++){sum+=1.0/i;}
    printf(".6f\n",sum);
    return 0;
}

发表于 2025-08-22 23:47:32 回复(0)
这种题,可以尝试用用 do...while 结构。
#include <stdio.h>

int main() {
    float n = .0F, H = .0F;

    scanf("%f", &n);

    do
    {
        H += 1.0F / n;
    }while (--n);

    printf("%f", H);

    return 0;
}


发表于 2025-08-07 09:59:06 回复(0)
#include <stdio.h>

int main() {
    int n,i;
    float Hn=0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        Hn=Hn+1.0/i;
    }
    printf("%.5f",Hn);
    return 0;
}
发表于 2025-07-28 18:23:24 回复(0)
#include <stdio.h>

void result()
{
    int a = 0;
    scanf("%d", &a);
    float sum = 0; // 统计和

    if (a)
    {
        for (int i = 1; i <= a; i++)
        {
            sum += (1.0 / i); // 1.0 ÷ i = 浮点数 并赋值给sum,如果用 1 ÷ i = 整数 赋值给 sum 会错
        }
    }
   
    printf("%.06f", sum);
}

int main()
{
    result();
    return 0;
}
发表于 2025-06-14 23:37:13 回复(0)
#include <stdio.h>
int main() {
    int a, i;
    while (scanf("%d", &a) != EOF) {
        double sum = 1;
        for (i = 2; i <= a; i++) {
            sum = sum + 1.0 / i;
        }
        printf("%.6f\n", sum);
    }
    return 0;
}
发表于 2025-02-11 16:28:10 回复(0)
#include <stdio.h>

int main()
{
    int a,c;
    double d=0.0,b;
    scanf("%d",&a);
    for(b=1;b<=a;b++)
    {
        d=d+1/b;
    }
    printf("%.6lf",d);
    return 0;
}
发表于 2024-11-30 20:04:19 回复(0)
#include<stdio.h>

int main()
{
    int n;
    double a,sum=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        a=1/(double)i;
        sum+=a;
    }
    printf("%.6lf",sum);
    return 0;
}
发表于 2024-09-07 16:56:00 回复(0)
#include <math.h>
#include <stdio.h>

int main() {
    int i=0,n;
    double sum = 0.0;
    scanf("%d",&n);
    for (i=1; i<=n; i++) {
       sum+=1.0/(double)i;
    }
    printf("%.6lf",sum);
    return 0;
}
发表于 2024-07-04 22:40:50 回复(0)
#include <stdio.h>

//分析
//分母每次都为1,分母每一次递增1
//写一个for,每次生成一个数,然后把他们加起来
//第一次sum=0,i=1  sum = sum +1.0/1 =0+1=1此时sum==1
//第二次sum=1,i=2  sum = sum +1.0/2 =1+0.5=1.5
//第三次sum=1.5,i=3 sum =sum+1.0/3  =1.5+0.33
//每次sum都会继承上一次的值
int main()
{
    int n =0;
    scanf("%d", &n);
    int i =0;
    double sum = 0;
    for(i = 1; i<= n;i++)
    {
        sum +=1.0/i; //1.0让其不为整型运算
    }
    printf("%lf",sum);
    return 0;
}

编辑于 2024-04-21 02:39:42 回复(0)
#include <stdio.h>

int main() 
{
    double result = 0.0;
    int i = 0;
    int input = 0;

    scanf("%d", &input);

    for(i = 1; i <= input; i++)
    {
        result += 1.0 / i;
    }

    printf("%.6lf\n", result);

    return 0;
}

编辑于 2024-04-05 21:08:38 回复(0)
#include <stdio.h>

int main() {
    int n=0;
    double sum=0.0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
        sum+=1.0/i;
    }
    printf("%.6f",sum);
    return 0;
}

编辑于 2024-02-06 23:39:43 回复(0)
#include <stdio.h>

int main() {
    double sum=0;
    int n;
    scanf("%d", &n);
    for(int i=1; i<=n; i++){
        sum += (1.0/i);
    }
    printf("%.6lf", sum);
    return 0;
}
编辑于 2024-01-20 10:00:17 回复(0)
int main()
{
    int n,i;
    double num = 0.0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        num+=1.0 / i;
    }
    printf("%.6f",num);

    return 0;
}
发表于 2023-11-11 15:13:02 回复(0)
#include <stdio.h>

int main()
{
    int i =0;
    int n =0;
    double j =0;
    scanf("%d",&n);
    for(i=1;i<=n;i++)
    {
        j=j+1.0/i;
    }
    printf("%lf",j);
    return 0;
}

发表于 2023-11-07 13:29:43 回复(0)
#include <stdio.h>

int main()
{
    int i = 0, n = 0;
    double m = 0;
    scanf("%d", &n);
    while (n != EOF)
    {
        for (i = 1; i <= n; i++)
        {
            m = m + 1.0 / i;
        }
        printf("%.6lf", m);
        break;
    }
    return 0;
}
发表于 2023-10-29 16:28:54 回复(0)
#include <stdio.h>
 
int main()
{
    int n = 0;
    double sum = 0;
    scanf("%d",&n);
    for(int i = 1; i <= n;i++)
    {
        sum += 1.0/i;
    }
    printf("%.6f",sum);
    return 0;
}

发表于 2023-06-26 16:17:06 回复(0)
#include <stdio.h>
int main() {
    const double a = 1;
    int j = 0;
    scanf("%d", &j);
    double sum = 0;
    double b = 0;
    int i;
    for(i=1;i<=j;i++){
        sum = a/i;
        sum +=b;
        b = sum;
    }
    printf("%.6f",sum);
    return 0;
}

发表于 2023-06-21 18:11:29 回复(0)
#include <stdio.h>

int main() {
    int i = 0;
    int j = 0;
    double k = 0;
    scanf("%d", &i);
    for(j = 1; j <= i; j++)
    {
        k += 1.0 / j;
    }
    printf("%.6lf", k);

    return 0;
}
发表于 2023-02-27 20:34:12 回复(0)
#include <stdio.h>
int main()
{
    // 接收值,初始值为0
    double sum = 0;
    // 临界值
    int n;
    while (scanf("%d", &n) != EOF)
    {
        for (int i = 1; i <= n; i++)
        {
            sum = sum + 1.0 / i;
        }
        printf("%.6lf\n", sum);
    }

    return 0;
}
发表于 2023-02-19 15:09:17 回复(0)