問題描述
輸入一個實數x,求最小的n使得,1/2+1/3+1/4+…+1/(n+1)>=x。
輸入的實數x保證大于等于0.01,小于等于5.20,并且恰好有兩位小數。你的程式要能夠處理多組資料,即不停地讀入x,如果x不等于0.00,則計算答案,否則退出程式。
輸出格式為對于一個x,輸出一行n card(s)。其中n表示要計算的答案。
輸入格式
分行輸入x的具體數值
輸出格式
分行輸出n的數值,格式為n card(s)
樣例輸入
1.00
3.71
0.04
5.19
0.00
樣例輸出
3 card(s)
61 card(s)
1 card(s)
273 card(s)
import java.util.Scanner;
public class 調和數列問題 {
public static void main(String args[]){
Scanner sc=new Scanner (System.in);
while(true){
double d=sc.nextDouble();
double sum=0;
int count=0;
if(d==0.00)
break;
else{
for(int i=2;;i++){
sum+=1.0/i;
if(sum>=d){
count=i-1;
break;
}
}
System.out.println(count+" card(s)");
}
}
}
}