C++ 中的数字加法

Numeric addition in c++

本文关键字:数字 C++      更新时间:2023-10-16

我试图解决以下问题:https://leetcode.com/problems/add-digits/

以下方法需要 12 毫秒才能完成所有测试:

int addDigits(int num) {
    return 1+((num-1)%9);
}

而以下操作仅用了 8 毫秒:

int addDigits(int num) {
    return ((num-1)%9)+1;
}

为什么当我在末尾而不是开头添加 1 时会有如此显着的差异?计算时我们应该总是把常量放在最后吗?

这是不可重现的。两个版本在多个编译器下生成完全相同的汇编代码。输出也与-O3相同。

请参阅 https://godbolt.org/g/K6PZM5