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 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |