。要求是:
这些数字不能包含某个数字n。例如,不能包含数字”1”时,那么数字22、32、4都符合要求,数字2314,1233不符合要求。
解答要求时间限制:1000ms, 内存限制:64MB
输入
输入一行l, r, n, 三个整数(1 <= l < r <= 1000000000, 0 <= n < 10)
表示范围为[l, r],不能包含数字n。
输出
输出一行一个整数,表示符合要求的数字的个数。
样例
输入样例 1 复制
1 20 2
输出样例 1
17
提示
设定dp[len][zero]表示要搞定len位,前面是否是前导0状态得到的数字个数,转移的过程只要不用题目中禁止的那个数字就可以了。另外也有一种贪心统计的方法,那样比较耗时,但也可以得出答案。
#include <iostream>
#include <cmath>
using namespace std;
// get number post number fg: 123 so return 3
int get_post_num(long long value) {
int post_num = 1;
while (value / 10 > 0) {
post_num ++;
value /= 10;
}
return post_num