rustgym 0.2.0

rustgym solutions
Documentation
struct Solution;

impl Solution {
    fn kth_grammar(n: i32, k: i32) -> i32 {
        let n = n as usize - 1;
        let k = k as usize - 1;
        Self::kth(n, k)
    }
    fn kth(n: usize, k: usize) -> i32 {
        if n == 0 {
            0
        } else {
            Self::kth(n - 1, k / 2) ^ (k % 2) as i32
        }
    }
}

#[test]
fn test() {
    let n = 1;
    let k = 1;
    let res = 0;
    assert_eq!(Solution::kth_grammar(n, k), res);
    let n = 2;
    let k = 1;
    let res = 0;
    assert_eq!(Solution::kth_grammar(n, k), res);
    let n = 2;
    let k = 2;
    let res = 1;
    assert_eq!(Solution::kth_grammar(n, k), res);
    let n = 4;
    let k = 5;
    let res = 1;
    assert_eq!(Solution::kth_grammar(n, k), res);
    let n = 30;
    let k = 417_219_134;
    let res = 1;
    assert_eq!(Solution::kth_grammar(n, k), res);
}