use crate::Solution;
problem!(Problem0073, 73, "Counting Fractions in a Range");
impl Solution for Problem0073 {
fn solve(&self) -> String {
frac_between(1, 3, 1, 2).to_string()
}
}
const MAX_DEN: u16 = 12_000;
fn frac_between(a: u16, b: u16, c: u16, d: u16) -> u32 {
let new_den = b + d;
if new_den > MAX_DEN {
0
} else {
let new_num = a + c;
1 + frac_between(a, b, new_num, new_den) + frac_between(new_num, new_den, c, d)
}
}