40: Add solution for Rust track exercise "Grains".

[?]
Aaw9nJhsNmfzFih9mKyNw9mV8CgERXJkRa1kK1Kx3LQH
Oct 10, 2021, 12:07 PM
EECUBSKDNJD5MSVIIJK7THGLL3M75PLWVV6QWCMX3X5YSKIG74KAC

Dependencies

  • [2] QK6XE5XF 13: Add Rust track exercises "Beer Song", "Proverb", "Difference Of Squares", "Sum Of Multiples", "Grains", "Prime Factors", "Armstrong Numbers" and "Reverse String".

Change contents

  • replacement in rust/grains/tests/grains.rs at line 2
    [2.24314][2.24314:24363]()
    assert_eq!(grains::square(input), expected);
    [2.24314]
    [2.24363]
    assert_eq!(grains::square(input), expected);
  • edit in rust/grains/tests/grains.rs at line 6
    [2.24374]
    [2.24374]
    #[ignore]
  • replacement in rust/grains/tests/grains.rs at line 9
    [2.24394][2.24394:24425]()
    process_square_case(1, 1);
    [2.24394]
    [2.24425]
    process_square_case(1, 1);
  • replacement in rust/grains/tests/grains.rs at line 16
    [2.24466][2.24466:24497]()
    process_square_case(2, 2);
    [2.24466]
    [2.24497]
    process_square_case(2, 2);
  • replacement in rust/grains/tests/grains.rs at line 23
    [2.24538][2.24538:24569]()
    process_square_case(3, 4);
    [2.24538]
    [2.24569]
    process_square_case(3, 4);
  • replacement in rust/grains/tests/grains.rs at line 30
    [2.24610][2.24610:24641]()
    process_square_case(4, 8);
    [2.24610]
    [2.24641]
    process_square_case(4, 8);
  • replacement in rust/grains/tests/grains.rs at line 38
    [2.24690][2.24690:24727]()
    process_square_case(16, 32_768);
    [2.24690]
    [2.24727]
    process_square_case(16, 32_768);
  • replacement in rust/grains/tests/grains.rs at line 45
    [2.24770][2.24770:24814]()
    process_square_case(32, 2_147_483_648);
    [2.24770]
    [2.24814]
    process_square_case(32, 2_147_483_648);
  • replacement in rust/grains/tests/grains.rs at line 52
    [2.24857][2.24857:24913]()
    process_square_case(64, 9_223_372_036_854_775_808);
    [2.24857]
    [2.24913]
    process_square_case(64, 9_223_372_036_854_775_808);
  • replacement in rust/grains/tests/grains.rs at line 59
    [2.25037][2.25037:25060]()
    grains::square(0);
    [2.25037]
    [2.25060]
    grains::square(0);
  • replacement in rust/grains/tests/grains.rs at line 66
    [2.25198][2.25198:25222]()
    grains::square(65);
    [2.25198]
    [2.25222]
    grains::square(65);
  • replacement in rust/grains/tests/grains.rs at line 72
    [2.25303][2.25303:25364]()
    assert_eq!(grains::total(), 18_446_744_073_709_551_615);
    [2.25303]
    [2.25364]
    assert_eq!(grains::total(), 18_446_744_073_709_551_615);
  • replacement in rust/grains/src/lib.rs at line 2
    [2.25446][2.25446:25500]()
    unimplemented!("grains of rice on square {}", s);
    [2.25446]
    [2.25500]
    if (1..=64).contains(&s) {
    2_u64.pow(s - 1)
    } else {
    panic!("Square must be between 1 and 64");
    }
  • replacement in rust/grains/src/lib.rs at line 10
    [2.25527][2.25527:25549]()
    unimplemented!();
    [2.25527]
    [2.25549]
    (1_u32..=64).map(square).sum()