import java.util.Scanner;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
Scanner s = new Scanner(System.in);
float n;
while ((n = s.nextFloat()) != 0) {
int i = 1;
while ((n -= (1.0 / ++i)) > 0) {
}
System.out.println((i - 1) + " card(s)");
}
s.close();
}
}
本来想用纯int,受最近看到的一个分子分母、最大公约数程序的影响,结果发现即使用long也不够存储。
答案却是使用最简单的方式。
上面的是代码最少(353B),下面的是时间最少(157MS)
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
new Main();
}
public Main() {
Scanner s = new Scanner(System.in);
while (s.hasNextFloat()) {
float n = s.nextFloat();
if (n == 0) {
break;
}
int i;
for (i = 2;; i++) {
n -= (1.0 / i);
if (n < 0) {
break;
}
}
System.out.println((i - 1) + " card(s)");
}
s.close();
}
}