标签:next 代码 class put new void 解法 ring imp
题目描述
已知: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);
}
}
标签:next 代码 class put new void 解法 ring imp
原文地址:https://www.cnblogs.com/cznczai/p/11149636.html