1

我正在处理 Project Euler,第一个问题,我已经让这个程序输出我需要的数字,但我不知道如何获取输出的数字并将它们加在一起。

这是代码:

#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

执行此操作的典型方法是使用另一个变量来保存总和。您逐渐将每个数字添加到此变量中,直到您必须在循环结束时总计。

于 2012-07-25T21:07:16.303 回答
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 回答