The most efficient way to reverse a number
algorithm, c++, optimization, performance
Solution
Something like this will work:
#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;
}
Problem
I am looking for an efficient algorithm to reverse a number, e.g. Input: 3456789 Output: 9876543 In C++ there are plenty of options with shifting and bit masks but what would be the most efficient way ? My platform: x86_64 Numbers range: XXX - XXXXXXXXXX (3 - 9 digits) EDIT Last digit of my input will never be a zero so there is no leading zeros problem.