Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- use std::cmp;
- use std::collections::LinkedList;
- fn add(a: &LinkedList<usize>, b: &LinkedList<usize>) -> LinkedList<usize> {
- let mut aiter = a.iter().rev();
- let mut biter = b.iter().rev();
- let mut tmp = 0;
- let mut output = Vec::new();
- loop {
- match (aiter.next(), biter.next()) {
- (Some(x), Some(y)) => tmp += x + y,
- (Some(x), None) | (None, Some(x)) => tmp += x,
- _ => break
- }
- let mut tmp2 = tmp;
- if tmp >= 10 {
- tmp2 -= 10;
- tmp = 1;
- } else {
- tmp = 0;
- }
- output.push(tmp2)
- }
- output.into_iter()
- .rev()
- .collect()
- }
- fn main() {
- let a = vec![1, 2, 3, 4].into_iter()
- .collect::<LinkedList<usize>>();
- let b = vec![5, 6].into_iter()
- .collect::<LinkedList<usize>>();
- let sum = add(&a, &b);
- println!("{:?}", sum);
- }
Add Comment
Please, Sign In to add comment