C++11 与Euler 23的问题

C++11 与Euler 23的问题,c++11,C++11,我已经开始解决Euler的问题,Euler 23中有一个错误确实困扰着我。 有什么问题吗 #include <iostream> using namespace std; int main() { long long res=0; for (int answer=1;answer<=28123;answer++){ bool tri=false; if (answer%6==0 || answer%20==0) continue; for (int i=12;i<=ans

我已经开始解决Euler的问题,Euler 23中有一个错误确实困扰着我。 有什么问题吗

#include <iostream>
using namespace std;
int main() {
long long res=0;
for (int answer=1;answer<=28123;answer++){
bool tri=false;
if (answer%6==0 || answer%20==0) continue;
for (int i=12;i<=answer;i++){
  if (abs(answer-i)%20==0) tri=true;break;
}
if (!tri) res+=answer;
 }
 cout << res << endl;
 return 0;
 }
如果有一个数字可以被20或6整除,我使用continue。 有什么问题吗? 是因为我的解决方案吗?

线路的意图

if (abs(answer-i)%20==0) tri=true;break;
未正确地用代码表示。这相当于:

if (abs(answer-i)%20==0)
{
   tri=true;
}
break;
我想你不是这个意思。它需要:

if (abs(answer-i)%20==0)
{
   tri=true;
   break;
}

请缩进代码使其可读。错误是什么?请在问题中添加问题陈述
if (abs(answer-i)%20==0)
{
   tri=true;
   break;
}