rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn count_numbers_with_unique_digits(n: i32) -> i32 {
        if n < 11 {
            Self::f(n)
        } else {
            Self::f(10)
        }
    }

    fn f(n: i32) -> i32 {
        match n {
            1 => 10,
            2 => 9 * 9 + 10,
            3 => 9 * 9 * 8 + 9 * 9 + 10,
            4 => 9 * 9 * 8 * 7 + 9 * 9 * 8 + 9 * 9 + 10,
            5 => 9 * 9 * 8 * 7 * 6 + 9 * 9 * 8 * 7 + 9 * 9 * 8 + 9 * 9 + 10,
            6 => 9 * 9 * 8 * 7 * 6 * 5 + 9 * 9 * 8 * 7 * 6 + 9 * 9 * 8 * 7 + 9 * 9 * 8 + 9 * 9 + 10,
            7 => {
                9 * 9 * 8 * 7 * 6 * 5 * 4
                    + 9 * 9 * 8 * 7 * 6 * 5
                    + 9 * 9 * 8 * 7 * 6
                    + 9 * 9 * 8 * 7
                    + 9 * 9 * 8
                    + 9 * 9
                    + 10
            }
            8 => {
                9 * 9 * 8 * 7 * 6 * 5 * 4 * 3
                    + 9 * 9 * 8 * 7 * 6 * 5 * 4
                    + 9 * 9 * 8 * 7 * 6 * 5
                    + 9 * 9 * 8 * 7 * 6
                    + 9 * 9 * 8 * 7
                    + 9 * 9 * 8
                    + 9 * 9
                    + 10
            }
            9 => {
                9 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2
                    + 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3
                    + 9 * 9 * 8 * 7 * 6 * 5 * 4
                    + 9 * 9 * 8 * 7 * 6 * 5
                    + 9 * 9 * 8 * 7 * 6
                    + 9 * 9 * 8 * 7
                    + 9 * 9 * 8
                    + 9 * 9
                    + 10
            }
            10 => {
                9 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2
                    + 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3 * 2
                    + 9 * 9 * 8 * 7 * 6 * 5 * 4 * 3
                    + 9 * 9 * 8 * 7 * 6 * 5 * 4
                    + 9 * 9 * 8 * 7 * 6 * 5
                    + 9 * 9 * 8 * 7 * 6
                    + 9 * 9 * 8 * 7
                    + 9 * 9 * 8
                    + 9 * 9
                    + 10
            }
            0 => 1,
            _ => 0,
        }
    }
}

#[test]
fn test() {
    let n = 2;
    let res = 91;
    assert_eq!(Solution::count_numbers_with_unique_digits(n), res);
}