zoukankan      html  css  js  c++  java
  • LeetCode(258):Add Digits

    Add Digits: 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 = 11, 1 + 1 = 2. Since 2 has only one digit, return it.

    题意:将给定的整数各个位数相加,直到相加之和小于10。

    思路:(1)常规的解法,求和之后进行判断,然后在进行求和直至满足条件;(2)参考Digital root的定义进行求解。

    代码:

    第一种思路:

    //求整数的各位之和
            public int get_sum(int sum)
            {
             int count = 0;
             while(sum>0){
                 count = count + sum%10;
                 sum/=10;
             }
             return count;
            }
         public int addDigits(int num) {
             int sum=0;
              while(true)
              {
                  sum= get_sum(num);
                  if(num<=9) 
                    {
                          return sum;
                    }
                  else 
                  {
                    num = sum;
                  }
              }
          }

    第二种思路:

    public int addDigits(int num) {
                if (num == 0) return 0;
                if (num%9==0) return 9;
                if(num<9) {
                    return num;
                }else{
                    return addDigits(num % 9);
                }
            }
  • 相关阅读:
    初步认识,合并集(树)
    20180918-1 词频统计
    20181011-1 每周例行报告
    2018091-2 博客作业
    项目第六天
    项目第五天
    项目第四天
    项目第三天
    总结随笔
    测试报告
  • 原文地址:https://www.cnblogs.com/Lewisr/p/5122343.html
Copyright © 2011-2022 走看看