美文网首页
leetcode的每日一题更新(addDigits)

leetcode的每日一题更新(addDigits)

作者: 今天是晴天 | 来源:发表于2017-05-11 08:14 被阅读0次

题目:给一个正数,如果大于10将位数的数字全加起来,加起来以后还大于10继续加,直到个位数,然后返回这个个位数。
思路:没想到什么简单的办法,只是想如果想要知道有多少位,我的办法是把这个数字化为字符串,刚想到一个办法,只要这个数大于10就除以10,并对它取余得到位数,这样一看我的办法还算比较笨的办法了,最后递归剩下的数字。附上代码然后去看看大神们的做法:

    public int addDigits(int num) {
          String a=num+"";
           int sum=0;
           if(num<10) return num;
           if(num<19) return 1+num%10;
           else{
               for(int i=0;i<a.length();i++){
                   sum+=Integer.valueOf(a.charAt(i)+"");
               }
               return addDigits(sum);
           }
    }

果然数学的世界我们一点也不懂。

 int addDigits(int num) {
        return 1 + (num - 1) % 9;
    }

相关文章

网友评论

      本文标题:leetcode的每日一题更新(addDigits)

      本文链接:https://www.haomeiwen.com/subject/baqazttx.html