/*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;
}
难怪题目要特意提醒,为什么最后的结果是负的?
- 写回答
- 好问题 0 提建议
- 追加酬金
- 关注问题
- 邀请回答
-
1条回答 默认 最新
- threenewbee 2020-10-12 23:38关注
你的编译器是32bit的吧,long溢出了
我用64bit运行,输出 2658417853本回答被题主选为最佳回答 , 对您是否有帮助呢?解决 无用评论 打赏 举报
悬赏问题
- ¥15 制裁名单20240508芯片厂商
- ¥20 易康econgnition精度验证
- ¥15 msix packaging tool打包问题
- ¥28 微信小程序开发页面布局没问题,真机调试的时候页面布局就乱了
- ¥15 python的qt5界面
- ¥15 无线电能传输系统MATLAB仿真问题
- ¥50 如何用脚本实现输入法的热键设置
- ¥20 我想使用一些网络协议或者部分协议也行,主要想实现类似于traceroute的一定步长内的路由拓扑功能
- ¥30 深度学习,前后端连接
- ¥15 孟德尔随机化结果不一致