P8680 [蓝桥杯 2019 省 B] 特别数的和
P8680 [蓝桥杯 2019 省 B] 特别数的和 - 洛谷
题目描述
小明对数位中含有2、0、1、9的数字很感兴趣(不包括前导0),在1到40中这样的数包括1、2、9、10至32、39和40,共28个,他们的和是574。
请问,在1到n中,所有这样的数的和是多少?
输入格式
输入一行包含一个整数n。
输出格式
输出一行,包含一个整数,表示满足条件的数的和。
输入输出样例
输入 #1 | 输出 #1 |
---|---|
40 | 574 |
说明/提示
- 对于20%的评测用例,1 ≤ n ≤ 10。
- 对于50%的评测用例,1 ≤ n ≤ 100。
- 对于80%的评测用例,1 ≤ n ≤ 1000。
- 对于所有评测用例,1 ≤ n ≤ 10000。
蓝桥杯2019 省赛 B 组 F 题
思路:
就是暴力
代码如下:
#include <iostream>
#include <queue>
#include<algorithm>
using namespace std;
typedef long long ll;
ll n,ans;
bool check(ll k)
{
while(k)
{
ll dig = k % 10;
if(dig == 1 || dig == 2 || dig == 9 || dig == 0)
return true;
k /= 10;
}
return false;
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin >> n;
for(ll i = 1 ; i <= n ; i++)
{
if(check(i))
{
// cout << i << '\n';
ans += i;
}
}
cout << ans;
return 0;
}