首页 > 试题广场 >

牛牛学数列2

[编程题]牛牛学数列2
  • 热度指数:44552 时间限制: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 <iostream>
using namespace std;

int main()
{
    int n;
    cin >> n;
    double sum = 0.0;
    for (int i = 1; i <= n; i ++ )
    {
        sum += 1.0 / i;
    }
    printf("%.6lf", sum);
}

发表于 2022-02-26 14:17:36 回复(0)
n = int(input())
a = 1
he = 0.0
while a <= n:
    he = he + 1/a
    a = a + 1
print("{:.6f}".format(he))
发表于 2023-05-06 17:09:06 回复(0)
n=int(input())
sum=0
for i in range(1,n+1):
    sum+=1/i
print('{:.6f}'.format(sum))

发表于 2023-01-19 11:07:35 回复(0)
小心C++中的整除,此题计算前需要转换类型或改为浮点数。
发表于 2026-01-21 21:05:14 回复(0)
n = int(input())
print(sum(float(1 / i) for i in range(1, n + 1)))
发表于 2026-01-08 17:34:24 回复(0)
n=int(input())
p=1<=n<=1000
if p:print(f'{sum(1/i for i in range(1,n+1)):.6f}')
else:print('请满足1≦n≦1000的正整数')

发表于 2025-10-29 15:24:49 回复(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() {
    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(){
    int n,i;
    double sum=1;
    scanf("%d",&n);
    for(i=1;i<n;i++){
        sum=sum+1.0/(i+1);
    }
    printf("%.6lf",sum);
    return 0;
}

发表于 2022-06-15 08:44:38 回复(0)
#include <iostream>
using namespace std;
#include <iomanip>
 
int main() {
    int n;
    cin >> n;
    double sum = 0;
    for(int i = n; i > 0; --i){
        sum = sum + 1.0/i;
    }
    cout << fixed << setprecision(6)<<sum;
   
}

发表于 2026-01-31 10:36:12 回复(0)
#include <stdio.h>

int main() {
    int n;
    double sn=0;
    scanf("%d",&n);
    for(int i=1;i<=n;i++){
    sn+=1.0/i;

    }
    printf("%f",sn);
    return 0;
}
发表于 2026-01-15 10:11:34 回复(0)
#include <stdio.h>
int main()
{
    int n = 0,i = 1;
    float H = 0;
    scanf("%d\n",&n);
    for(i=1;i<=n;i++)
    {
        H = H + 1.0/i;
    }
    printf("%.6f",H);
    return 0;
}

发表于 2026-01-07 20:48:35 回复(0)
#include <stdio.h>

int main() {
	int n;
	if (scanf("%d", &n) != 1) {
		return 1;
	}
	if (n < 1 || n > 1000) {
		return 1;
	}
	float H = 1;
	for (int i = 2; i <= n; i += 1) {
		H += 1.0 / i;
	}
	printf("%f", H);
	return 0;
}

发表于 2026-01-06 18:23:55 回复(0)
这个自测运行不通过,保存并提交通过
#记录数字
the = int(input())
i = 0
sum = 0
while i < the:
    i += 1
    sum += 1/i
print(sum)

发表于 2026-01-01 20:25:10 回复(0)
n = int(input())
while  1<=n<=1000:
    s = 0
    for i in range(1,n+1):
        s = s + 1/i
    print("%.6f" %s)
    break
发表于 2026-01-01 13:29:41 回复(0)
#include <iostream>
#include <cassert>
#include <iomanip>

double sum(int a)
{
    if (a == 1)
    {
        return 1.0;
    }
    return sum(a - 1) + 1.0 / float(a);
}

int main()
{
    int n;
    std::cin >> n;
    assert(n >= 1 && n <= 1000);

    // // 方法1 for循环计算
    // double sum = 0;
    // for (int i = 1; i <= n; i++)
    // {
    //     sum += 1.0 / float(i);
    // }
    // std::cout << std::fixed << std::setprecision(6) << sum << std::endl;

    // 方法2 递归计算
    std::cout << std::fixed << std::setprecision(6) << sum(n) << std::endl;

    return 0;
}

发表于 2025-12-30 15:49:26 回复(0)
def H(n):
    if 1<=n<=1000:
        h = 0
        for i in range(1,n+1):
            h += 1/i
        return float(h)

n = int(input())
print(f"{H(n):.6f}")

发表于 2025-12-17 23:05:06 回复(0)
#include <iostream>
using namespace std;
#include <iomanip>

int main() {
    int n;
    cin >> n;
    double sum = 0;
    for(int i = n; i > 0; --i){
        sum = sum + 1.0/i;
    }
    cout << fixed << setprecision(6);
    cout << sum;
}
// 64 位输出请用 printf("%lld")

发表于 2025-12-10 23:39:59 回复(0)
#print(s)
n = int(input())
s = 0
for x in range(1,n+1):
    s += 1/x
print("%.6f"%s)
发表于 2025-12-09 20:29:50 回复(0)
int main() {
    int a;
    double sum = 0;
    cin >> a;
    for(double i = 1; i <= a; i ++) sum += 1 / i;
    cout << sum;
}
发表于 2025-12-06 11:56:17 回复(0)