首页 > 试题广场 >

牛牛学数列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 <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)
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)
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)
#include <iomanip>
#include <ios>
#include <iostream>
using namespace std;

int main() {
  int n;cin>>n;
  double a=0;
  for(int i=1;i<=n;i++)
  {
    a=a+(1.0/i);
  }
  cout<<fixed<<setprecision(6)<<a;
}
//调和级数

发表于 2025-11-25 00:55:27 回复(0)
n=int(input())
h=1
for i in range(2,n+1):
    h+=1/i
print(h)

发表于 2025-11-21 22:28:08 回复(0)
#include <stdio.h>

int main() {
    int n;
    float H=0;
    scanf("%d",&n);
    for(float i=1;i<=n;i++){
        H=1/i+H;
    }
    printf("%f",H);
    return 0;
}
发表于 2025-11-07 13:01:23 回复(0)
import java.util.Scanner;

// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
    public static void main(String[] args) {
        //使用Scanner录入一个整数
        Scanner sc=new Scanner(System.in);
        int n=sc.nextInt();
        //求数列和,定义一个double类型sum接收
        //sum==1+1/2+1/3+...+1/n;
        double sum=0;
        for(int i=1;i<=n;i++){
            sum+=1.0/i;
        }
        System.out.println(sum);
    }
}
发表于 2025-11-01 10:02:45 回复(0)
#include <stdio.h>

int main() {
    int a,i;
    double b;
    scanf("%d",&a);
    for (i=1;i<=a;i++) {
    b+=1.0/i;
    }
    printf("%f",b);
    return 0;
}
发表于 2025-10-29 22:11:26 回复(0)
n = int(input())
H = 0
for i in range(1,n+1):
    num = 1 / i
    H += num
print(f"{H:.6f}")

编辑于 2025-10-29 00:05:30 回复(0)
#include <iostream>
using namespace std;

int main(){
    int n;
    cin >> n;
    double h=0;
    for(int i=1; i<=n; i++){
        h = h + 1.0/i;
    }
    cout << h << endl;
}
发表于 2025-09-24 12:34:37 回复(0)
a=int(input())
b=0
for i in range(1,a+1):
     b+=1/i
print(f"{b:.6f}")  
发表于 2025-09-23 14:59:33 回复(0)
#include <iomanip>

#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;}
        cout<<fixed<<setprecision(6)<<sum;
        
    return 0;
}

发表于 2025-09-22 14:41:10 回复(0)