栈的应用-进制转换问题 输入一个十进制数,输出对应的二进制表示。生成C++代码
时间: 2024-10-14 19:15:24 浏览: 37
栈是一种线性数据结构,常用于解决递归和后进先出的问题。对于进制转换,特别是从十进制到其他进制(如二进制),我们可以使用栈来模拟除法的过程。以下是一个简单的C++代码示例,演示了将十进制数转换为二进制数:
```cpp
#include <iostream>
#include <stack>
#include <bitset>
std::string decimalToBinary(int n) {
std::stack<int> s; // 创建一个空栈
while (n > 0) {
s.push(n % 2); // 每次取余并将结果压入栈
n /= 2; // 更新n为商
}
std::string binaryString;
while (!s.empty()) {
binaryString += std::to_string(s.top()); // 取栈顶元素并添加到字符串前
s.pop(); // 弹出栈顶元素
}
return binaryString;
}
int main() {
int decimalNumber = 42;
std::cout << "The binary representation of " << decimalNumber << " is " << decimalToBinary(decimalNumber) << ".\n";
return 0;
}
```
这个程序首先通过循环将输入的十进制数不断除以2并取余,每次得到的余数就是二进制位。然后,将这些余数按顺序存入栈中。最后,当栈非空时,就依次取出余数,拼接成完整的二进制字符串。
阅读全文