Leetcode战记day1 数根问题

问题:给一个非负整数,如num=68,6+8=14,1+4=5;即求出该整数各位数字相加之和,若该和大于9继续加,直到其为一个个位数

  1. num=a[n]a[n-1]...a[2]a[1]a[0],num=10^n*a[n]+10^(n-1)*a[n-1]+……+10^1*a[1]+10^0*a[0]
  2. 1%9=1;10%9=1;100%9=1……
  3. 由此规律可知num%9=a[n]+a[n-1]+……+a[1]+a[0]
  4. 因为是除法,所以余数肯定为最小的该数字
  5. 该数字又被称为数根
public int addDigits(int num) {

        if(num%9==0&&num!=0)
        return 9;
        else
        return num%9;
    }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值