题目描述
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
输入输出格式
输入格式:
一个正整数K。
输出格式:
一个正整数N。
输入输出样例
输入样例#1:
1
输出样例#1:
已知:Sn= 1+1/2+1/3+…+1/n。显然对于任意一个整数K,当n足够大的时候,Sn大于K。
现给出一个整数K(1<=k<=15),要求计算出一个最小的n;使得Sn>K。
输入输出格式
输入格式:
一个正整数K。
输出格式:
一个正整数N。
输入输出样例
输入样例#1:
1
输出样例#1:
2
var
sn,n,k:real;
i:longint;
begin
read(k);
sn:=0.0;
for i:=1 to 100000000 do//怕出现根本没有,或太大现象,所以使用for,时间估计最多1秒
begin
n:=i;
sn:=sn+1/n;//累加
if sn>k then begin//是时候判断了!
write(i);
break;//直接退出,省掉不必要的循环
end;
end;
end.