输入一个正整数,输出其对应二进制,用c++的栈解决
时间: 2024-10-17 22:12:14 浏览: 27
顺序栈、链栈将10进制转为2、8、16进制源码
5星 · 资源好评率100%
在 C++ 中,我们可以使用栈(stack)来将一个正整数转换成对应的二进制字符串。栈是一种后进先出(LIFO)的数据结构,非常适合处理这种从高位到低位的转化过程。以下是一个简单的 C++ 代码示例:
```cpp
#include <iostream>
#include <stack>
#include <bitset>
std::string intToBinary(int num) {
std::stack<int> binaryStack;
while (num > 0) {
binaryStack.push(num % 2);
num = num / 2;
}
// 将栈里的元素反转,因为栈里是倒序的
std::string binaryString;
while (!binaryStack.empty()) {
binaryString += std::to_string(binaryStack.top());
binaryStack.pop();
}
return binaryString;
}
int main() {
int input;
std::cout << "请输入一个正整数:";
std::cin >> input;
if (input >= 0) { // 检查输入是否为正整数
std::string binary = intToBinary(input);
std::cout << "该数字的二进制表示为:" << binary << std::endl;
} else {
std::cout << "请输入正整数!" << std::endl;
}
return 0;
}
```
当你运行这个程序并输入一个正整数,它会将其转换成二进制形式并显示出来。如果输入的是负数,程序会提示输入正整数。
阅读全文