级数求和
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
- 上传者