d20
题目
题目描述
已知:��=1+12+13+…+1�Sn=1+21+31+…+n1。显然对于任意一个整数 �k,当 �n 足够大的时候,��>�Sn>k。
现给出一个整数 �k,要求计算出一个最小的 �n,使得 ��>�Sn>k。
输入格式
一个正整数 �k。
输出格式
一个正整数 �n。
输入输出样例
输入 #1复制
1
输出 #1复制
2
说明/提示
【数据范围】
对于 100%100% 的数据,1≤�≤151≤k≤15。
【题目来源】
NOIP 2002 普及组第一题
思路
从1开始循环得到Sn,当Sn大于k时,结束循环,输出当前的n,n等于i
代码
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner in=new Scanner(System.in);
int k=in.nextInt();
double Sn=0;
int i=1;
while (true){
Sn=Sn+(double)1/i;
if (Sn>k){
break;
}
else
i++;
}
System.out.println(i);
}
}