18/07/06 17:45:50.76 UEcW6fma.net
50円玉、100円玉、500円玉をどれも1枚以上使って1000円,5000円,10000円を支払う方法はそれぞれ何通りあるか?
答 4通り、216通り、931通り
Brute Forceでのスクリプト
pay.coin <- function(yen){
gr=expand.grid(1:(yen%/%50),1:(yen%/%100),1:(yen%/%500))
f=function(a,b,c) a*50+b*100+c*500
cat(sum(mapply(f,gr[,1],gr[,2],gr[,3])==yen),'\n')
invisible(gr[(mapply(f,gr[,1],gr[,2],gr[,3])==yen),])
}
> pay.coin(1000)
4
> pay.coin(5000)
216
> pay.coin(10000)
931