级数求和
Background
Special for beginners, ^_^
Description
已知:Sn=1+1/2+1/3+...+1/n。显然对于任意一个整数k,当n足够大的时候,Sn>k。现给出一个整数k,要求计算出一个最小的 n,使得Sn>k。
Format
Input
一个正整数k。
Output
一个正整数n。
Sample 1
Input
1
Output
2
Limitation
1s, 1024KiB for each test case.
Hint
C Code
#include<stdio.h>
int
main(){
    int k,n;
    double sn=0.0;
    scanf("%d",&k);
    for(n=1;;n++){
     sn+=1.0/n;
     if(sn>k*1.0)
      break;
    }
    printf("%d",n);
    return 0;
}
C++ Code
#include<cstdio>
using namespace std;
double search(double,double);
double n,t=1;
double print(double);
int main()
{
    cin>>n;
    search(n,0);//搜索模块。
}
double search(double x,double sum)//下面就是调用的深搜模块。
{
        sum=sum+1/t;
        t++;
        if(sum>n) print(t);//调到输出的子程序
        else return search(x,sum);//深搜
    }
double print(double q)
{
    cout<<q-1;
    return 0;
}
#include<iostream>
#include<cstdio>
using namespace std;
double sum=0;
int main()
{
    double n;
    cin>>n;
    for(double i=1;i<=1000000;++i)//要小心范围,小了是不可以的。
    {
        sum=sum+1/i;
        if(sum>=n)
        {
            cout<<i;
            return 0;
        }
    }
}
Python Code
b=1
s=0
a=input()
k=int(a)
while s <= k:
    s+=1/b
    b+=1
b-=1
print(b)
def Superposition(n):
    sum = 1.0
    return sum / n
def main():
    k = input().split()
    n = 0
    sum = 0.0
    while (sum <= float(k[0])):
        n += 1
        sum += Superposition(n)
    print(n)
main()
        信息
- ID
 - 1001
 - 难度
 - 7
 - 分类
 - (无)
 - 标签
 - (无)
 - 递交数
 - 47
 - 已通过
 - 11
 - 通过率
 - 23%
 - 被复制
 - 1
 - 上传者