十进制整数转换为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]
- 判断超级幸运数:满足“纯4/7数位”或“4/7总个数为4或7”的整数计数(阿里通义 | 965点数解答 | 2026-03-13 12:15:06)164
- 十进制转 x 进制的 C++ 实现与开发建议(字节豆包 | 802点数解答 | 2026-08-24 20:05:22)26
- 揭秘!十进制数到负进制数的转换程序及代码详解(DeepSeek | 490点数解答 | 2026-01-20 17:31:14)98
- Python 实现球类:精准计算半径、表面积与体积,附输入验证与异常处理!(阿里通义 | 261点数解答 | 2024-11-28 21:19:39)571
- C 语言:按特定顺序读入并输出浮点数、整数和字符(字节豆包 | 106点数解答 | 2024-09-26 00:32:40)428
- C语言:按序读入浮点数、整数、字符并按新顺序输出,附代码实现 (字节豆包 | 108点数解答 | 2024-09-30 22:54:08)439
- C语言:按特定顺序读入并输出浮点数、整数和字符,精确控制小数位(字节豆包 | 155点数解答 | 2024-10-08 22:06:18)429
- C++与Python:按特定顺序输入输出数据并保留浮点数两位小数的实现(字节豆包 | 168点数解答 | 2024-10-08 22:07:03)429
- C语言:按特定顺序读入再输出,含浮点数精确格式处理(字节豆包 | 105点数解答 | 2024-10-08 22:07:29)446
- C++ 混合类型数据格式化输入输出:按指定顺序输出并保留两位小数(字节豆包 | 187点数解答 | 2024-10-16 14:31:08)483
- C语言:实现混合类型数据格式化输入输出,代码超简单!(字节豆包 | 159点数解答 | 2024-10-16 14:32:18)473
- C语言:按特定格式输入并格式化输出整数、实数和字符(字节豆包 | 103点数解答 | 2024-10-24 11:12:53)518