Skip to content

Commit 48a41aa

Browse files
committed
add_two_numbers
1 parent 47890e7 commit 48a41aa

File tree

2 files changed

+39
-0
lines changed

2 files changed

+39
-0
lines changed

src/lib.rs

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
11
pub mod first;
2+
pub mod second;

src/second.rs

Lines changed: 38 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,38 @@
1+
pub fn add_two_numbers(l1: &[usize], l2: &[usize]) -> Vec<usize> {
2+
let length: usize = match l1.len() >= l2.len() {
3+
true => l1.len(),
4+
false => l2.len(),
5+
};
6+
let mut vec: Vec<usize> = Vec::with_capacity(length+1);
7+
let mut a: usize;
8+
let mut b: usize;
9+
let mut c: usize;
10+
let mut x: usize = 0;
11+
for i in 0..length+1 {
12+
a = if i < l1.len() { l1[i] } else { 0 };
13+
b = if i < l2.len() { l2[i] } else { 0 };
14+
c = a + b + x;
15+
if c > 9 { x = 1; c = c - 10 } else { x = 0 };
16+
if !(c == 0 && i == length) { vec.push(c); };
17+
}
18+
println!("vec: {:?}", vec);
19+
return vec;
20+
}
21+
22+
#[cfg(test)]
23+
mod test {
24+
use super::add_two_numbers;
25+
26+
#[test]
27+
fn test_add_two_numbers() {
28+
assert_eq!(add_two_numbers(&[2,4,3], &[5,6,4]), vec![7,0,8]);
29+
30+
assert_eq!(add_two_numbers(&[2,2], &[5,6,4]), vec![7,8,4]);
31+
32+
assert_eq!(add_two_numbers(&[2,2,1], &[5,6,4]), vec![7,8,5]);
33+
34+
assert_eq!(add_two_numbers(&[2,2,1,3], &[5,6,4]), vec![7,8,5,3]);
35+
36+
assert_eq!(add_two_numbers(&[9], &[9]), vec![8,1]);
37+
}
38+
}

0 commit comments

Comments
 (0)