码迷,mamicode.com
首页 > 其他好文 > 详细

我也来刷LeetCode——3、Add Digits

时间:2015-09-14 13:46:16      阅读:114      评论:0      收藏:0      [点我收藏+]

标签:

  唉,做完这道题目后,有种羞愧无比的感觉,果然还是读书太少。。。

  什么意思呢?就像这道题目一样,要求你编程计算出从1加到100的结果。于是你用循环从1累加到100,结果为5050。而大家都知道,从数学上的角度来解答,结果就是(a[1]+a[n])* n / 2。

  LeetCode上面的这道【Add Digits】题,其实是道数学题。它这个求解的结果,在数学上称为数根。

  原题大概意思是这样,给定一个正整数,循环累加它的各位,直到结果为一位数。如 num 是38,计算的过程是 3+8=11,1+1=2,2为一位数,即为结果。而实际上这个结果就是这个数的数根。

  一个数的数根,用数学公式来表达就是 f(n) =(n - 1) % 9 + 1,这个公式的证明不难,可以看这里

  最后~还是觉得很惭愧。。。

 

1 class Solution {
2 public:
3     int addDigits(int num) {
4         return (num -1) % 9 + 1;
5     }
6 };

 

我也来刷LeetCode——3、Add Digits

标签:

原文地址:http://www.cnblogs.com/huangmingchuan/p/4806824.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!