题目描述
已知:S_n= 1+1/2+1/3+…+1/nSn=1+1/2+1/3+…+1/n。显然对于任意一个整数KK,当nn足够大的时候,S_nSn大于KK。
现给出一个整数KK(1 \le k \le 151≤k≤15),要求计算出一个最小的nn;使得S_n>KSn>K。
输入输出格式
输入格式:
一个正整数KK
输出格式:
一个正整数NN
这道题目思路不难 主要是细节 一开始把代码写出来了 一直没法输出结果 看了网上的解法 才恍然大悟
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner input = new Scanner(System.in); int k = input.nextInt(); double sn=0; int i=0; while (sn < k) { i++; sn=(double)1/i+sn; } //一开始是下面种解法 把我坑惨了 参考上面 //int i=1; //while (sn < k) { // sn==1/i+sn; //i++; //} System.out.println(i); } }