难怪题目要特意提醒,为什么最后的结果是负的?

难怪题目要特意提醒,为什么最后的结果是负的?
难怪题目要特意提醒,为什么最后的结果是负的?

/*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

回到顶部