首页 > 其他 > 详细

各位相加

时间:2017-10-18 15:24:28      阅读:206      评论:0      收藏:0      [点我收藏+]

题目链接

http://www.lintcode.com/zh-cn/problem/add-digits/

题目大意

给出一个非负整数 num,反复的将所有位上的数字相加,直到得到一个一位的整数。

样例

给出 num = 38。

相加的过程如下:3 + 8 = 111 + 1 = 2。因为 2 只剩下一个数字,所以返回 2

算法思想

递归判断这个数字被拆分后求和,和是不是小于10,小于10的话就结束递归

代码实现

public class Solution {
    /*
     * @param num: a non-negative integer
     * @return: one digit
     */
    public int addDigits(int num) {
        if (num < 10)
            return num;
        else
        {
            int result = 0;
            while (num / 10 != 0)
            {
                result += num % 10;
                num = num / 10;
            }
            result += num % 10;
            return addDigits(result);
        }
    }
}

  

各位相加

原文:http://www.cnblogs.com/airycode/p/7686807.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!