酷代码 AI
菜单
服务商

输入一个整数n(n<100000000),输出该数的二进制数。 背景知识: 二进制是逢2进位的进位制,因此它只使用到它只使用0、1两个数字符号。十进制转换为二进制的算法为:采用"除2取余,逆序排列"法。具体做法是:用2整除十进制整数,可以得到一个商和余数;再用2去除商,又会得到一个商和余数,如此进行,直到商为0时为止,然后把先得到的余数作为二进制数的低位有效位,后得到的余数作为二进制数的高位有效位,依次排列起来。 如: 789=1100010101 789/2=394 余1 第10位 394/2=197 余0 第9位 197/2=98 余1 第8位 98/2=49 余0 第7位 49/2=24 余1 第6位 24/2=12 余0 第5位 12/2=6 余0 第4位 6/2=3 余0 第3位 3/2=1 余1 第2位 1/2得0 余1 第1位 输入 第一行一个数n 输出 该数的二进制数。以C++的形式回答

```cpp #include <iostream> #include <vector> int main() { int n; std::cin >> n; std::vector<int> binary; while (n > 0) { binary.push_back(n % 2); n /= 2; } if (binary.empty()) { std::cout << 0; } else { for (int i = binary.size() - 1; i >= 0; --i) { std::cout << binary[i]; } } return 0; } ``` 代码解释 1. 输入部分: - 使用 `std::cin` 读取用户输入的整数 `n`。 2. 转换过程: - 创建一个 `std::vector<int>` 类型的 `binary` 向量,用于存储每次除 2 得到的余数。 - 通过 `while` 循环不断将 `n` 除以 2 并取余数,将余数存入 `binary` 向量中,同时更新 `n` 为商。 3. 输出部分: - 若 `binary` 向量为空,说明输入的数为 0,直接输出 0。 - 若 `binary` 向量不为空,逆序遍历该向量并输出每个元素,得到二进制表示。 [2026-02-07 20:05:44 | AI问答 | 313点数解答]

相关提问
发财导航,免费问AI
实用工具查看更多