rustgym/leetcode/
_829_consecutive_numbers_sum.rs1struct Solution;
2
3impl Solution {
4 fn consecutive_numbers_sum(n: i32) -> i32 {
5 let mut i = 2;
6 let mut res = 1;
7 while i * i < 2 * n {
8 if (n - i * (i - 1) / 2) % i == 0 {
9 res += 1;
10 }
11 i += 1;
12 }
13 res
14 }
15}
16
17#[test]
18fn test() {
19 let n = 5;
20 let res = 2;
21 assert_eq!(Solution::consecutive_numbers_sum(n), res);
22 let n = 9;
23 let res = 3;
24 assert_eq!(Solution::consecutive_numbers_sum(n), res);
25 let n = 15;
26 let res = 4;
27 assert_eq!(Solution::consecutive_numbers_sum(n), res);
28 let n = 4;
29 let res = 1;
30 assert_eq!(Solution::consecutive_numbers_sum(n), res);
31}