Coin de Gamma
12 months ago
1 changed files with 22 additions and 0 deletions
@ -0,0 +1,22 @@ |
|||||||
|
fn cs(n: u32, cl: usize) -> u32 { |
||||||
|
let coins = [1, 2, 5, 10, 20, 50, 100, 200]; |
||||||
|
if n == 0 { return 1; } |
||||||
|
if cl == 0 { return 1; } |
||||||
|
let mut res = cs(n, cl - 1); |
||||||
|
//println!("init {}/{}/{}", n, cl, res);
|
||||||
|
let mc = coins[cl]; |
||||||
|
let mut m = n; |
||||||
|
//println!("m vs mc: {}/{}", m, mc);
|
||||||
|
while m >= mc { |
||||||
|
res += cs(m - mc, cl - 1); |
||||||
|
//println!("res({}, {})+= {}", m-mc, cl-1, res);
|
||||||
|
m -= mc; |
||||||
|
} |
||||||
|
res |
||||||
|
} |
||||||
|
|
||||||
|
fn main() { |
||||||
|
let res = cs(200, 7); |
||||||
|
println!("{}", res); |
||||||
|
} |
||||||
|
|
Loading…
Reference in new issue