c ++中的数字加法

时间:2016-06-05 10:18:51

标签: c++ performance optimization operators mod

我试图解决以下问题: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而不是开头时会有这么大的差异?我们是否应该在计算时将常量放在最后?

1 个答案:

答案 0 :(得分:0)

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

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