酷代码 AI
菜单
服务商
DeepSeek字节豆包
更多选项

十进制整数转换为m进制数的C++实现

### 📝代码实现 ```cpp #include <iostream> #include <vector> int main() { int n, m; // 读取十进制整数 n std::cin >> n; // 读取目标进制 m std::cin >> m; std::vector<int> result; // 开始进行进制转换 while (n > 0) { // 存储 n 除以 m 的余数 result.push_back(n % m); // n 更新为 n 除以 m 的商 n /= m; } // 如果 result 为空,说明输入的 n 为 0 if (result.empty()) { std::cout << 0; } // 逆序输出结果 for (int i = result.size() - 1; i >= 0; --i) { std::cout << result[i]; } std::cout << std::endl; return 0; } ``` ### 💡代码解释 1. **输入读取**:程序首先使用 `std::cin` 读取两个整数,`n` 是需要转换的十进制整数,`m` 是目标进制数。 2. **进制转换**:使用 `while` 循环进行进制转换,在每一轮循环中,将 `n` 除以 `m` 的余数存储在 `result` 向量中,然后将 `n` 更新为 `n` 除以 `m` 的商。当 `n` 变为 0 时,循环结束。 3. **处理特殊情况**:如果 `result` 向量为空,说明输入的 `n` 为 0,此时直接输出 0。 4. **输出结果**:由于余数是从低位到高位存储的,因此需要逆序输出 `result` 向量中的元素。 ### ⚙️调试步骤 1. **编译代码**:使用 g++ 编译器编译代码,命令如下: ```sh g++ -o decimal_to_m base_conversion.cpp ``` 2. **运行程序**:编译成功后,运行生成的可执行文件: ```sh ./decimal_to_m ``` 3. **输入数据**:按照题目要求输入十进制整数和目标进制数,例如: ``` 123 8 ``` 4. **验证输出**:程序将输出转换后的 `m` 进制数,验证输出是否正确。 ### 📈复杂度分析 - **时间复杂度**:$O(log_m n)$,其中 $n$ 是输入的十进制整数,$m$ 是目标进制数。主要时间开销在于不断地进行除法和取余操作。 - **空间复杂度**:$O(log_m n)$,其中 $n$ 是输入的十进制整数,$m$ 是目标进制数。主要空间开销在于存储转换过程中的余数。 ######[AI写代码神器 | 663点数解答 | 2026-08-29 19:27:15]

相关提问
本站限时免费提问中
实用工具查看更多
Linux在线手册 [开发类]
Jquery在线手册 [开发类]
今日油价 [生活类]
图片互转base64 [开发类]
时间转换器 [开发类]