| Run ID | 作者 | 问题 | 语言 | 测评结果 | Time | Memory | 代码长度 | 提交时间 |
|---|---|---|---|---|---|---|---|---|
| 153479 | 李鸣 | 不吉利的数 | C++ | Accepted | 18 MS | 8072 KB | 946 | 2026-05-17 16:23:29 |
#include <iostream> using namespace std; const int MAX = 1000005; int dp[MAX]; // dp[i] = 1 表示数字 i 是吉利数 // 判断数字是否吉利:不含4,不含62 bool isGood(int x) { while (x > 0) { // 出现4 → 不吉利 if (x % 10 == 4) return false; // 出现62 → 不吉利 if (x % 100 == 62) return false; x /= 10; } return true; } int main() { // 预处理:提前算出 1~100万 所有数字是否吉利 for (int i = 1; i < MAX; i++) { dp[i] = isGood(i) ? 1 : 0; } // 前缀和优化:sum[i] = 1~i 中吉利数的总数 int sum[MAX] = {0}; for (int i = 1; i < MAX; i++) { sum[i] = sum[i - 1] + dp[i]; } // 多组查询 int n, m; while (cin >> n >> m) { // 答案 = 1~m的吉利数 - 1~n-1的吉利数 cout << sum[m] - sum[n - 1] << endl; } return 0; }