如何使输出方向相反(c ++)?

时间:2012-10-15 14:01:02

标签: c++

我创建了一个简单的十进制到二进制程序。 让我们说我输入数字8。 它回写0001 我希望它是1000

我该怎么做?

代码在这里:

using namespace std;

int translating(int x);

int main()
{
    int x;
    int translate;
    cout << "Write a number: ";
    cin >> x;
    cout << endl;
    translate = translating(x);
    cout << endl;
    cout << endl;

    return 0;
}

int translating(int x)
{
    if (x == 1)
    {
        cout << "1";
        return 0;
    }
    if ((x % 2)==1)
    {
        cout << "1";
        return (translating((x-1)/2));
    }
    else
    {
        cout << "0";
        return (translating(x/2));
    }
}

2 个答案:

答案 0 :(得分:5)

不是直接写输出,而是首先将其写入临时字符串,然后将该字符串从最后一个字符遍历到第一个字符。

答案 1 :(得分:3)

非常简单,这么简单,你会踢自己。只需颠倒输出语句和递归函数调用的顺序。还修正了一个错误。

void translating(int x)
{
    if (x < 2)
    {
        cout << x;
        return;
    }
    if ((x % 2)==1)
    {
        translating((x-1)/2);
        cout << "1";
    }
    else
    {
        translating(x/2);
        cout << "0";
    }
}