-5

PKU ジャッジの問題 ID 1003 へのリンクは次のとおりです: http://poj.org/problem?id=1003

この問題で必要なことは、ハーモニック プログレッションの合計を計算し、それを既に入力した変数と比較することだけです。

入力例の回答は正しいのですが、なぜ回答が受け入れられないのですか? 結果として「間違った答え」を取得しています。これは、「入力は 1 つ以上のテスト ケースで構成され、その後に入力の終了を示す数字 0.00 を含む行が続く」という問題の一部でした。その 0.00 部分の実行方法がわかりません。単一の入力を取得するだけで、その方法がわかりませんでしたか?

これが私の解決策です:

#include<iostream>

using namespace std;

int main()
{

    float c;
    float sum = 0;
    cin >> c;

    short int i = 1;

    while(1)
    {
        sum += (float)1/(i+1);

        if(sum >= c)
        {
            cout << i << " card(s)";
            break;
        }
        i++;
    }
    return 0;
}
4

2 に答える 2

0
  1. 入力は、1 つ以上のテスト ケースで構成されます。

  2. 例 に示されている正確な出力形式を使用してください。つまり、各ケースの後に改行を出力する必要があります。

受け入れられるように、コードに少し変更を加えました。

#include <iostream>

using namespace std;

int main() {
    float c;
    while (true) {
        cin >> c;
        if (c == 0.0)
            return 0;
        float sum = 0;
        short int i = 1;
        while (1) {
            sum += 1.0 / (i + 1);
            if (sum >= c) {
                cout << i << " card(s)" << endl;
                break;
            }
            i++;
        }
    }
}
于 2013-07-17T12:24:14.443 に答える