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;
}