1

私はこれを書きましたが、それを実行すると、コンソールは「実行中...」のままで、少なくとも私が見る限り、実際には何もしません。他にやるべきことが思いつかないので、ここで途方に暮れています。

#include <iostream>
#include <cmath>
#include <cstdlib>

int main(void) {
    int count = 0;
    do {

        int a = 1;
        int b = 2;
        int c = 3;
        int total;

        for (a=1;a<b;a++) {
            for (b=2;b<c;b++) {
                for (c=3;c<=1000;c++) {
                    total = a+b+c;

                    if (total == 1000 && a*a + b*b == c*c) {
                        std::cout << a << ", " << b << ", " << c;

                    }
                }
            }
        }



        count++;

    } while(count < 1000);  
    return 0;
    std::cin.get();
}
4

1 に答える 1

1

端末が行バッファリングされており、改行を書いたり、ストリームをフラッシュしたりしないため、出力が表示されない場合があります。これを修正するstd::endlには、出力行に次を追加します。

std::cout << a << ", " << b << ", " << c << std::endl;

この方法では、すべてのトリプルが見つかるとすぐに表示されますが、プログラムが完了するまでにはまだ長い時間がかかります。結果が出るまでに長い時間がかかる場合もあります。ネストされたループの一部を回避することで、プログラムを高速化できます。

于 2012-07-25T05:08:20.610 に答える