Run ID 作者 问题 语言 测评结果 Time Memory 代码长度 提交时间
153479 李鸣 不吉利的数 C++ Accepted 18 MS 8072 KB 946 2026-05-17 16:23:29

Tests(10/10):


Code:

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