我正在研究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;
}
答案 0 :(得分: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
}
答案 1 :(得分:1)
执行此操作的典型方法是使用另一个变量来保存总和。您逐渐将每个数字添加到此变量,直到您在循环结束时必须总计。