第十届蓝桥杯——特别数的和

【问题描述】
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到
40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 n 中,所有这样的数的和是多少?

【输入格式】
输入一行包含两个整数 n。

【输出格式】
输出一行,包含一个整数,表示满足条件的数的和。

【样例输入】
40

【样例输出】
574

【评测用例规模与约定】
对于 20% 的评测用例,1 ≤ n ≤ 10。
对于 50% 的评测用例,1 ≤ n ≤ 100。
对于 80% 的评测用例,1 ≤ n ≤ 1000。
对于所有评测用例,1 ≤ n ≤ 10000。


题解:

#include <iostream>

using namespace std;

bool judge(int num)
{
	while(num > 0)
	{
		int t = num % 10;
		if(t == 2 || t == 0 || t == 1 || t == 9) return true;
		num /= 10;
	}
	return false;
}

int main()
{
	int n;
	cin >> n;
	
	int ans = 0;
	for (int i = 1; i <= n; i ++)
	{
		int x = i;
		if(judge(x))
		   ans += x;
	}
	cout << ans << endl;
	
	return 0;
}
发布了48 篇原创文章 · 获赞 3 · 访问量 614
展开阅读全文

没有更多推荐了,返回首页

©️2019 CSDN 皮肤主题: 游动-白 设计师: 上身试试

分享到微信朋友圈

×

扫一扫,手机浏览