难怪题目要特意提醒,为什么最后的结果是负的?
/*2,0,1,9*/#include <iostream>
#include <string>
#include <iomanip>
using namespace std;
int main()
{
int i = 1;
long sum = 0;
for (i = 1; i <= 2019; i++)
{
int m = i;
while (m > 0)
{
int t = m % 10;
if (t == 2 || t == 0 || t == 1 || t == 9)
{
sum += (i * i);
cout << setw(5) << i;
break;
}
m /= 10;
}
}
cout << endl<<endl;
cout << sum;
return 0;
}
回答
你的编译器是32bit的吧,long溢出了
我用64bit运行,输出 2658417853
以上是 难怪题目要特意提醒,为什么最后的结果是负的? 的全部内容, 来源链接: utcz.com/a/58301.html