提交时间:2025-01-04 12:13:23
运行 ID: 52176
#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; }