求和~~~~~~~~~~~~~~~~~

试题 A: 求和
本题总分:5 分
【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣,在 1 到 40 中这样的数包
括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 2019 中,所有这样的数的和是多少?
【答案提交】
这是一道结果填空的题,你只需要算出结果后提交即可。本题的结果为一
个整数,在提交答案时只填写这个整数,填写多余的内容将无法得分。
 

1905111

#include using namespace std;long fun(int n) {int res = 0;for (int i = 1; i <= n; i++) {bool flag = false;int t = i;while (t) {int m = t % 10;if (m == 2 || m == 0 || m == 1 || m == 9) {flag = true;break;}t /= 10;}res = flag ? res + i : res;}return res;
}int main() {long res = fun(2019);cout << res << endl;
}

方法2:

将数值转为字符串

分析字符串是否函数有2019

如果有对数值进行累加

#include 
#include using namespace std;int main() {int res = 0;for (int i = 1; i <= 2019; i++) {string str = to_string(i);if (str.find("2") != -1 || str.find("0") != -1 || str.find("1") != -1 ||str.find("9") != -1)res += i;}cout << res << endl;return 0;
}


本文来自互联网用户投稿,文章观点仅代表作者本人,不代表本站立场,不承担相关法律责任。如若转载,请注明出处。 如若内容造成侵权/违法违规/事实不符,请点击【内容举报】进行投诉反馈!

相关文章

立即
投稿

微信公众账号

微信扫一扫加关注

返回
顶部