Guest User

Untitled

a guest
Sep 26th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.89 KB | None | 0 0
  1. use std::cmp;
  2. use std::collections::LinkedList;
  3.  
  4. fn add(a: &LinkedList<usize>, b: &LinkedList<usize>) -> LinkedList<usize> {
  5. let mut aiter = a.iter().rev();
  6. let mut biter = b.iter().rev();
  7.  
  8. let mut tmp = 0;
  9. let mut output = Vec::new();
  10.  
  11. loop {
  12. match (aiter.next(), biter.next()) {
  13. (Some(x), Some(y)) => tmp += x + y,
  14. (Some(x), None) | (None, Some(x)) => tmp += x,
  15. _ => break
  16. }
  17.  
  18. let mut tmp2 = tmp;
  19. if tmp >= 10 {
  20. tmp2 -= 10;
  21. tmp = 1;
  22. } else {
  23. tmp = 0;
  24. }
  25.  
  26. output.push(tmp2)
  27. }
  28.  
  29. output.into_iter()
  30. .rev()
  31. .collect()
  32. }
  33.  
  34.  
  35. fn main() {
  36. let a = vec![1, 2, 3, 4].into_iter()
  37. .collect::<LinkedList<usize>>();
  38. let b = vec![5, 6].into_iter()
  39. .collect::<LinkedList<usize>>();
  40.  
  41. let sum = add(&a, &b);
  42. println!("{:?}", sum);
  43. }
Add Comment
Please, Sign In to add comment