問題の説明
実数xを入力し、1/2 + 1/3 + 1/4 + ... + 1 /(n + 1)> = xとなるような最小のnを見つけます。
入力実数xは、0.01以上、5.20以下であることが保証されており、小数点以下2桁です。プログラムは、複数のデータセットを処理できる必要があります。つまり、xが0.00に等しくない場合は、ノンストップでxを読み取り、答えを計算します。それ以外の場合は、プログラムを終了します。
出力フォーマットは、xに対してnカード(s)の行を出力することです。ここで、nは計算される答えを表します。
入力実数xは、0.01以上、5.20以下であることが保証されており、小数点以下2桁です。プログラムは、複数のデータセットを処理できる必要があります。つまり、xが0.00に等しくない場合は、ノンストップでxを読み取り、答えを計算します。それ以外の場合は、プログラムを終了します。
出力フォーマットは、xに対してnカード(s)の行を出力することです。ここで、nは計算される答えを表します。
入力フォーマット
xの特定の値を別の行に入力します
出力フォーマット
nの値は、nカード(s)の形式で別の行に出力されます。
入力例
1.00
3.71
0.04
5.19
0.00
出力例
3枚のカード
61枚のカード
1枚のカード
273枚のカード
浮動小数点数が0に等しいかどうかを判断する方法を確認する
1 #include <bits / stdc ++。h> 2 名前空間std を使用 。 3 int main(){ 4 double x; 5 while(cin >> x && fabs(x)> 1e- 4 ){ 6 double n = 2 ; 7 二重和= 1 / n; 8 while(sum < x){ 9 n ++ ; 10 合計+ = 1 / n; 11 } 12 cout << n- 1 << " カード" << endl; 13 } 14 return 0 ; 15 }