酷代码 AI
菜单
全部AI  /  热门  /  AI写代码神器
服务商

问题 D: 没有3的世界 输入文件: without3.in 输出文件: without3.out 时间限制: 1 Sec 内存限制: 256 MB 题目描述 由于在 月 3 日 3 点 33 分被噩梦惊醒,小明开始讨厌 3 。为了表明自己的态度,他决定构建一个没有 3 的世界,首先从数字开始。 他规定正整数从 1 开始,只要是 3 的倍数或者数位中包含 3、6 、9就跳过 佳佳同情小明的遭遇,但对他的偏执不以为然,于是她给出一个正整数 n (当然是正常世界的正整数,是允许 3 出现的),让小明按他的规则找出第 n 个数是多少。小明想不出,又不愿放弃自己构造的世界,请你帮帮他。 输入 一行,一个整数 n 。 输出 一个整数,表示按小明的规则第 n 个正整数是多少。c++语言

```cpp #include <iostream> bool containsUnwantedDigits(int num) { // 检查数字是否包含 3、6、9 while (num > 0) { int digit = num % 10; if (digit == 3 || digit == 6 || digit == 9) { return true; } num /= 10; } return false; } int findNthNumber(int n) { int count = 0; int num = 1; while (count < n) { // 如果是 3 的倍数或者包含 3、6、9 则跳过 if ((num % 3 == 0) || containsUnwantedDigits(num)) { num++; continue; } count++; num++; } return num - 1; } int main() { int n; std::cin >> n; int result = findNthNumber(n); std::cout << result << std::endl; return 0; } // 额外注意点: // 1. 注意处理边界情况,比如输入的 n 为 1 时的特殊处理。 // 2. 考虑对代码进行性能优化,例如使用更高效的数字处理方法。 // 3. 对输入的 n 进行合法性检查,确保其是正整数。 ``` [2025-03-17 22:48:43 | AI写代码神器 | 333点数解答]

相关提问