Run ID | 作者 | 问题 | 语言 | 测评结果 | 分数 | 时间 | 内存 | 代码长度 | 提交时间 |
---|---|---|---|---|---|---|---|---|---|
52176 | Rock007 | 数位递增数 | C++ | 通过 | 100 | 1 MS | 736 KB | 835 | 2025-01-04 12:13:23 |
#include <iostream> #include <queue> using namespace std; int main() { int n; cin >> n; queue<int> Queue; for (int i = 1; i <= 9; i++) { Queue.push(i); // 初始化队列,从 1 到 9 开始 } int count = 0; while (!Queue.empty()) { int num = Queue.front(); Queue.pop(); if (num >= 10 && num <= n) { count++; // 如果在范围内,计数 } if (num < n) { int last_digit = num % 10; // 取出最后一位 for (int i = last_digit; i <= 9; i++) { // 生成递增数 int new_num = num * 10 + i; if (new_num <= n) { Queue.push(new_num); } } } } cout << count << endl; return 0; }