扭转数字的最有效方法

tom*_*myk 3 c++ algorithm optimization performance

我正在寻找一种有效的算法来反转数字,例如

输入: 3456789

产量: 9876543

在C++中,有很多选项可以使用移位和位掩码,但最有效的方法是什么?

我的平台:x86_64

数字范围:XXX - XXXXXXXXXX(3 - 9位)

编辑 我的输入的最后一位数字永远不会为零,因此没有前导零问题.

Ste*_*Lin 11

这样的东西会起作用:

#include <iostream>

int main()
{
    long in = 3456789;
    long out = 0;
    while(in)
    {
        out *= 10;
        out += in % 10;
        in /= 10;
    }
    std::cout << out << std::endl;
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

  • @ H2CO3这个答案非常普遍.不太难或不足以被复制. (4认同)