LeetCode_258_AddDigits

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.
Follow up:
Could you do it without any loop/recursion in O(1) runtime?

题目分析

对于给定的数字num,对其各位数字进行累加,直到只有一个数字,输出该数字。

解:

0   1   2   3   4   5   6   7   8   9   //sum

0   1   2   3   4   5   6   7   8   9   //num

    10  11  12  13  14  15  16  17  18  //num

    19  20  21  22  23  24  25  26  27  //num

Solution:

int addDigits(int num)
{
    if (num == 0)
        return 0;
    return num % 9 ? num % 9 : 9;
}
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容