1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
macro_rules! prob1 { (0) => { 0 }; ($n:expr) => { if ($n % 3 == 0) || ($n % 5 == 0) { $n + prob1!($n - 1); //~ ERROR recursion limit reached while expanding `prob1!` } else { prob1!($n - 1); } }; } fn main() { println!("Problem 1: {}", prob1!(1000)); }