WildPointer

Welcome to my world!

LeetCode 258: Add Digits


Difficulty: Easy

Tags: Math


问题描述

给定一个非负整数num,不断将其各位数字求和直到结果只有一位数字。


解决方案

两重循环,在外重循环判断num是否只有一位数字,在内重循环做num的各位数字求和。


▷ Time Complexity: O(lgn)

▷ Space Complexity: O(1)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
class Solution {
public:
int addDigits(int num) {
while(1)
{
if(num/10 == 0) return num;

int t = 0;

while(1)
{
t += num%10;
num /= 10;

if(num/10 == 0)
{
t += num;
num = t;
break;
}
}
}
}
};

回到 Conquer Leetcode

0%