一、题目链接
http://noi.openjudge.cn/ch0105/27/
二、解题思路
◎ 在级数之和Sn小于等于对比整数K时,循环处理如下:
▲ 增加一个可加项;
▲ 将新增的可加项累加到级数之和Sn上。
三、实施步骤
◎ 定义并输入int类型的整数K,代表对比的整数;定义int类型的整数n=0,代表满足条件的最小的n;
◎ 定义double类型的浮点数Sn=0,代表级数之和;
◎ 在Sn<=K时,循环处理如下:
▲ 令n++,Sn=Sn+1.0/n;
◎ 输出n。
四、Java程序
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
int K = input.nextInt(); // 对比的整数
int n = 0; // 满足条件的最小的n,初始时为0
double Sn = 0; // 级数之和,初始时为0
/* 在级数之和Sn小于等于对比的整数K时 */
while (Sn <= K) {
n++; // 增加一个可加项
Sn = Sn + 1.0 / n; // 将新增的可加项累加到级数之和Sn上
}
System.out.print(n);
}
}