天天看點

洛谷——P1035 [NOIP2002 普及組] 級數求和

P1035 [NOIP2002 普及組] 級數求和

題目描述

已知:S_n= 1+\frac{1}{2}+\frac{1}{3}+…+\frac{1}{n}S**n=1+21+31+…+n1。顯然對于任意一個整數 kk,當 nn 足夠大的時候,S_n>kS**n>k。

現給出一個整數 kk,要求計算出一個最小的 nn,使得 S_n>kS**n>k。

輸入格式

一個正整數 kk。

輸出格式

一個正整數 nn。

輸入輸出樣例

輸入 #1複制

1      

輸出 #1複制

2      

說明/提示

【資料範圍】

對于 100%100% 的資料,1\le k \le 151≤k≤15。

package com.kk.luogu;


import java.util.Scanner;

//級數求和
public class P1035 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        int nums=scanner.nextInt();
        System.out.println(SummationOfSeries(nums));
    }

    public static int SummationOfSeries(int num){
        double sum=0;
        int i=1;
        int tmp=0;
        for ( i = 1; i < 10005; i++) {
            sum+=(double) 1/i;
            if(sum>num) {
                 tmp=i;
                break;
            }
        }
        return tmp;
    }

}      
#include<bits/stdc++.h>
using namespace std;
int main() {
    int k,n=0;
    cin>>k;
    for(double Sn=0;Sn<=k;++n,Sn+=1.0/n);
    cout<<n;
    return 0;
}