mirror of https://github.com/doocs/leetcode.git
|
…
|
||
|---|---|---|
| .. | ||
| README.md | ||
| README_EN.md | ||
| Solution.cpp | ||
| Solution.go | ||
| Solution.java | ||
| Solution.py | ||
| Solution.rs | ||
README_EN.md
| comments | difficulty | edit_url | tags | |||
|---|---|---|---|---|---|---|
| true | Easy | https://github.com/doocs/leetcode/edit/main/solution/0200-0299/0258.Add%20Digits/README_EN.md |
|
258. Add Digits
Description
Given an integer num, repeatedly add all its digits until the result has only one digit, and return it.
Example 1:
Input: num = 38 Output: 2 Explanation: The process is 38 --> 3 + 8 --> 11 11 --> 1 + 1 --> 2 Since 2 has only one digit, return it.
Example 2:
Input: num = 0 Output: 0
Constraints:
0 <= num <= 231 - 1
Follow up: Could you do it without any loop/recursion in O(1) runtime?
Solutions
Solution 1
Python3
class Solution:
def addDigits(self, num: int) -> int:
return 0 if num == 0 else (num - 1) % 9 + 1
Java
class Solution {
public int addDigits(int num) {
return (num - 1) % 9 + 1;
}
}
C++
class Solution {
public:
int addDigits(int num) {
return (num - 1) % 9 + 1;
}
};
Go
func addDigits(num int) int {
if num == 0 {
return 0
}
return (num-1)%9 + 1
}
Rust
impl Solution {
pub fn add_digits(mut num: i32) -> i32 {
((num - 1) % 9) + 1
}
}