使用堆栈将基数10转换为二进制以解决它的函数

时间:2013-11-21 16:52:15

标签: c++

所以我被要求用C ++编写这个函数,它转换一个基数为10的整数并打印整数的二进制等价物 我应该使用堆栈来解决问题,我也不允许在我的函数中使用递归。

这就是我的想法: 在进行转换时,我应该开始相应地将1和0推入堆栈,订单将被反转(我认为)所以我必须将它们移动到另一个堆栈才能获得正确的订单,之后我可以开始采取顶部复制堆栈并打印然后将其弹出以获取下一个数字,因为该函数不是成员函数,我无法随机访问成员。

我需要知道我的方法是否正确,而且我不确定如何进行转换。

1 个答案:

答案 0 :(得分:0)

在这里: -

#include<iostream>
#include<stack>
using namespace std;
int main()
{
    int number;
    cin>>number;
    stack<int> binary;
    while(number>1)
    {
        binary.push(number%2);
        number /= 2;
    }
    cout<<1;
    while(!binary.empty())
    {
        cout<<binary.top();
        binary.pop();
    }
    return 0;
}

提示:

  1. 无论递归是什么,循环也可以。
  2. 如果您有想法,请务必先尝试实施。如果你失败了,你仍然可以提出问题。