加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

c中的数字加法

发布时间:2020-12-16 06:52:01 所属栏目:百科 来源:网络整理
导读:我试图解决以下问题: 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时
我试图解决以下问题: 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

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读