1

私は最初の問題であるプロジェクトオイラーに取り組んでおり、このプログラムで必要な数値を出力するようになりましたが、出力された数値を取得して合計する方法がわかりません。

コードは次のとおりです。

#include <iostream>
#include <cmath>

int main(void) {

    int test = 0;

    while (test<1000) {
        test++;
            if (test%3 == 0 && test%5 == 0) {

                std::cout << test << std::endl;

            }
    }

    std::cin.get();

    return 0;
}
4

2 に答える 2

1

最も簡単なオプションはtotal、条件が一致したときに追加する変数です。

最初のステップはそれを作成して0に初期化することなので、後で正しい番号になります。

int total = 0;

その後、小計が加算され、全体の合計が累積されます。

total += 5;
...
total += 2;
//the two subtotals result in total being 7; no intermediate printing needed

小計を追加したら、それを全体の合計として印刷できます。

std::cout << total;

さて、これが他のいくつかのポインタとともに、手元のコードにどのように適合するかを示します。

#include <iostream>
#include <cmath> //<-- you're not using anything in here, so get rid of it

int main() {
    int test = 0;
    int total = 0; //step 1; don't forget to initialize it to 0

    while (test<1000) { //consider a for loop instead
        test++;

        if (test % 3 == 0 && test % 5 == 0) {
            //std::cout << test << std::endl;
            total += test; //step 2; replace above with this to add subtotals
        }
    }

    std::cout << total << std::endl; //step 3; now we just output the grand total

    std::cin.get();    
    return 0; //this is implicit in c++ if not provided
}
于 2012-07-25T21:03:43.270 に答える
1

これを行う一般的な方法は、別の変数を使用して合計を保持することです。ループの最後で合計する必要があるまで、この変数に各数値を徐々に追加します。

于 2012-07-25T21:07:16.303 に答える