首页 > 代码库 > codevs——3064 求和
codevs——3064 求和
3064 求和
时间限制: 1 s
空间限制: 32000 KB
题目等级 : 青铜 Bronze
题目描述 Description
输入一个数x(x <= 10000),求数n使的S= 1+1/2+1/3+…+1/n>=x的最小n值。但如果在n > 5000000时都无法满足,则输出“Error!”(没有引号)
输入描述 Input Description
只有一个数x
输出描述 Output Description
如果数n使的S= 1+1/2+1/3+…+1/n>=x的最小n值小于5000000,则输出一个数n
否则输出“Error!”(没有引号)
样例输入 Sample Input
输入样例1
10
输入样例2
1000
样例输出 Sample Output
输出样例1
12367
输出样例2
Error!
刷个水体,活跃一下身心。。。
代码;
#include<cstdio>#include<cstdlib>#include<cstring>#include<iostream>#include<algorithm>using namespace std;double x;double ans;int read(){ int x=0,f=1; char ch=getchar(); while(ch<‘0‘||ch>‘9‘){if(ch==‘-‘) f=-1; ch=getchar(); } while(ch<=‘9‘&&ch>=‘0‘){x=x*10+ch-‘0‘;ch=getchar();} return x*f;}int main(){ x=read(); long long n=1; while(n<=5000000) { ans+=1.0/n; if(ans>x) { printf("%d",n); return 0; } n++; } printf("Error!\n"); return 0;}
codevs——3064 求和
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。