c中的数字加法

c中的数字加法,第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;} 当我在结尾而不是开头 我试图解决以下问题: 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

总结

以上是内存溢出为你收集整理的c中的数字加法全部内容,希望文章能够帮你解决c中的数字加法所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1224833.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-05
下一篇 2022-06-05

发表评论

登录后才能评论

评论列表(0条)

保存