c++ - 反转数字的最有效方法

标签 c++ performance algorithm optimization

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

输入:3456789

输出: 9876543

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

我的平台:x86_64

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

编辑 我输入的最后一位永远不会是零,因此不存在前导零问题。

最佳答案

像这样的东西会起作用:

#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;
}

关于c++ - 反转数字的最有效方法,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15355080/

相关文章:

c++ - new/delete 和 malloc/free 有什么区别?

Python:为什么列表理解比for循环慢

performance - 我应该发出请求并立即 setState 到哪个生命周期 Hook ?

python - 导航网格

c++ - "Missing non-virtual thunks"和继承顺序

c++ - 谁应该拥有指针

C++ 枚举 [字符串] 错误

mysql - MariaDB 中的 TokuDB 性能

由两个执行者共享作业的算法

algorithm - 哈希表中的二次测试