使用尾随零反转大整数

时间:2014-07-02 14:44:58

标签: c++

我试图反转一个大整数(> 100位)。我希望以这样的方式实现它,即忽略原始数字中的尾随零。 ie:reverse(2130200)给出了20312.我的问题是,如何实现reverse(),使大整数中的尾随零不被忽略。 例如:反向(20301205500)给出550210302

这是我为小值实现的代码。

#include <iostream>
using namespace std;

int myreverse(int num)
{
    int rev=0;
    while(num)
    {
        rev=rev*10+(num%10);
        num/=10;
    }
    return rev;
}

int main()
{
    int num;
    cin>>num;
    int a1 = myreverse(num);
    cout<<a1<<endl;
    return 0;
}

1 个答案:

答案 0 :(得分:0)

看看这段代码,我希望它会对你有所帮助:

#include <iostream>

using namespace std;

int main()
{
    int number = 1234567890;

    cout << "Number: " << number << endl;

    string str_of_number = to_string(number);

    string rvsd_str_of_number(str_of_number.rbegin(), str_of_number.rend());

    int rvsd_number = std::atoi(rvsd_str_of_number.c_str());

    cout << "Reversed number: " << rvsd_number << endl;
}

输出:

Number: 1234567890
Reversed number: 987654321