Skip to content

Commit 3d4f6f8

Browse files
committed
src/bin/add-digits.rs
1 parent ff35a10 commit 3d4f6f8

File tree

1 file changed

+30
-0
lines changed

1 file changed

+30
-0
lines changed

src/bin/add-digits.rs

Lines changed: 30 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,30 @@
1+
fn main() {
2+
println!("{}", Solution::add_digits(38));
3+
println!("{}", Solution::add_digits(3143243));
4+
}
5+
6+
struct Solution;
7+
8+
impl Solution {
9+
// 超出时间限制
10+
pub fn add_digits1(num: i32) -> i32 {
11+
if num < 10 {
12+
return num;
13+
}
14+
15+
let mut num = num;
16+
let mut s = 0;
17+
while num > 10 {
18+
s += num % 10;
19+
num /= 10;
20+
}
21+
22+
Self::add_digits(s + num)
23+
}
24+
25+
/// 能够被9整除的整数,各位上的数字加起来也必然能被9整除,所以,连续累加起来,最终必然就是9。
26+
/// 不能被9整除的整数,各位上的数字加起来,结果对9取模,和初始数对9取摸,是一样的,所以,连续累加起来,最终必然就是初始数对9取摸。
27+
pub fn add_digits(num: i32) -> i32 {
28+
if num % 9 == 0 { if num == 0 { 0 } else { 9 } } else { num % 9 }
29+
}
30+
}

0 commit comments

Comments
 (0)