1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
struct Container {
data: Vec<usize>,
}
impl Container {
fn new(data: Vec<usize>) -> Self {
Self { data }
}
fn add_sum(
&mut self,
i: usize,
) -> usize {
self.data[i] += 1;
if i == self.data.len() - 1 {
return self.data[i];
}
self.data[i] + self.add_sum(i + 1)
}
}
#[cfg(test)]
mod tests {
#[test]
fn test() {
let mut c = super::Container::new(vec![0, 1, 2, 3, 4, 5, 6, 7, 8, 9]);
assert_eq!(c.add_sum(0), 55);
assert_eq!(c.add_sum(5), 45);
assert_eq!(c.add_sum(5), 50);
}
}