Given a non-negative integer num, repeatedly add all its digits until the result has only one digit.

For example:

Given num = 38, the process is like: 3 + 8 = 111 + 1 = 2. Since 2 has only one digit, return it.

这道题是求一个数的数根。

数根有一个同余性质:一个数与它的数根对(b-1)同余(b是进制数)。

举个简单的例子就明白了:

123=1*100+2*10+3

=1*(99+1)+2*(9+1)+3

=(99+2*9)+(1+2+3)

前面一项能被9整除,后面的一项就是各个位上数的和。对1+2+3后得到的数,还是可以这么拆分,一直下去直到数根。

所以一个数与它的数根对(b-1)同余(b是进制数)。

对于本题,我们就利用这个性质求数根,因为数根是一位数,而且数根%9和num%9结果一样的,所以我们就直接num%9,但是我们这里求出来的数不是数根,数根是[0,9],而%9求出的是[1,8],所以我们加一个小的处理技巧:先减1,模了以后再加1.

class Solution {
public:
int addDigits(int num) {
return +(num-)%;
}
};

最新文章

  1. css 深入浅出定位
  2. CSS画猪
  3. Leetcode: word search
  4. iOS ARC模式 内存管理
  5. 使用Spring的Validator接口进行校验
  6. HTTP中Get与Post的区别
  7. Activity之间数据传递(一)(简单传递,数据包Bundle,传递对象)
  8. 爱上MVC3~MVC+ZTree大数据异步树加载
  9. Spring读书笔记-----使用Spring容器(二)
  10. Blog 入职新公司的一些吐槽!
  11. Debian中编译内核
  12. sql 计算两时间或日期 的相差的 年、 月、 日、时、分、秒,年、月、日分别的提取
  13. 【Xamarin挖墙脚系列:现有IPhone/IPad 设备尺寸】
  14. 关于我的FGC的OAuth2.0认证。
  15. solr总结 第六部分:solr查询语法
  16. C、C++的Makefile的编写以及动、静态库的制作调用(包括MAC地址的获取及MD5加密)
  17. java: Java中this和super的用法总结
  18. androidstudio各版本下载地址
  19. JAVA多线程-内存模型、三大特性、线程池
  20. turtle模块绘图

热门文章

  1. selenium 遇到chrome 弹出是否保存密码框
  2. WPF 获取控件模板中的控件
  3. PHP新手必学之刚进公司装环境
  4. thinkphp将APP_DEBUG常量设置为false后报错的问题
  5. 我的Android进阶之旅------>如何为ListView组件加上快速滑块以及修改快速滑块图像
  6. Linux根目录下重要文件夹
  7. Jquery事件绑定的4中方式对比
  8. Js 抱错:::SyntaxError: identifier starts immediately after numeric literal
  9. linux 中 开放端口,以及防火墙的相关命令
  10. ubuntu防火墙