leetcode--add digits

如果要用O(1)的时间完成,需要数根原理的知识。

树根的结果只有0到9。有计算式如下:

r(a)=1+(a-1)%9

对一某个自然数n有:

n为0时,r(n)=0

当n>0且 n%9==0 时,r(n)=9 。

因为9的倍数其实就是不断加9,个位减1,十位加1,结果是不变的。同样,一个数加个9的任意倍数,树根也是不变的

进一步,将n%9, 除了n是9的倍数的情况外(结果为0),其他的数根计算结果都是正确的。

为了将这种情况包含进去,用n-1来进行计算,然后结果再加上1就可以了。



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值