运维开发网

c中的数字加法

运维开发网 https://www.qedev.com 2020-03-25 11:56 出处:网络 作者:运维开发网整理
我试图解决以下问题: https://leetcode.com/problems/add-digits/ 以下方法需要12ms才能完成所有测试: int addDigits(int num) { return 1+((num-1)%9); } 而以下只花了8毫秒: int addDigits(int num) { return ((num-1)%9)+1; } 当我在结尾而不是开头
我试图解决以下问题: https://leetcode.com/problems/add-digits/

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

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

0

精彩评论

暂无评论...
验证码 换一张
取 消