头像

Cyan

四川成都

深度强化学习炼丹师

2019年第十届蓝桥杯省赛-F.特别数的和

2019年第十届蓝桥杯省赛-F.特别数的和

2022-03-23 · 78次阅读 · 原创 · 数据结构与算法

原题链接

题面

小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。

请问,在 1 到 n 中,所有这样的数的和是多少?

输入描述

输入格式:

输入一行包含两个整数 n(1n104)n(1 \leq n \leq 10^4)

输出描述

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

输入样例

40

输出样例

574

题解

枚举

枚举每个 [1,n][1, n] 的每个数,判断其是否包含 2, 0, 1, 9 四个数字中的一个,满足则答案加一即可。

具体见代码。

代码

#include<bits/stdc++.h> using namespace std; const int N = 10005; int n, s; inline bool check(int x) { while (x) { int t = x % 10; if (t == 0 || t == 2 || t == 1 || t == 9) return true; x /= 10; } return false; } int main() { cin >> n; for (int i = 1; i <= n; ++i) { if (check(i)) s += i; } cout << s << endl; return 0; }

标题: 2019年第十届蓝桥杯省赛-F.特别数的和
链接: https://www.fightingok.cn/detail/216
更新: 2022-09-18 22:49:02
版权: 本文采用 CC BY-NC-SA 3.0 CN 协议进行许可