原题链接
题目难度:简单
题目来源:第十届蓝桥杯省赛C++ B组,第十届蓝桥杯省赛Java B组
题目描述
小明对数位中含有 2、0、1、9 的数字很感兴趣(不包括前导 0),在 1 到 40 中这样的数包括 1、2、9、10 至 32、39 和 40,共 28 个,他们的和是 574。
请问,在 1 到 n 中,所有这样的数的和是多少?
输入格式
共一行,包含一个整数 n。
输出格式
共一行,包含一个整数,表示满足条件的数的和。
数据范围
$1 \le n \le 10000$
输入样例:
1 | 40 |
输出样例:
1 | 574 |
题目分析
这道题比较简单,就是问从1到n中包含2、0、1、9的数的和
这里数据量是很小的,是可以直接用枚举或者模拟来解决的,如果数据量非常大的话就需要用到数位DP了
这里我们可以枚举从1到n,然后再把每一位扣出来是否是2、0、1、9即可
示例代码
1 |
|