Solve( 3,12);
Solve(18,72);
function Solve(pHall,pDasuu)
{
const UB = pDasuu;
//場合の数[合計打数]なDP表
var PrevDP = new Array(UB + 1).fill(0);
PrevDP[0] = 1;
for(var I = 1 ; I <= pHall ; I++){
var CurrDP = new Array(UB + 1).fill(0);
for(var J = 0 ; J <= UB ; J++){
if(PrevDP[J] == 0) continue;
for(var K = 1 ; K <= 5 ; K++){
var NewJ = J + K;
if(UB < NewJ) break;
CurrDP[NewJ] += PrevDP[J];
}
}
PrevDP = CurrDP;
}
document.write(pHall , 'ホールで合計打数が' , pDasuu , 'だと' , PrevDP[UB] , '通り<br>');
}
3ホールで合計打数が12だと10通り 18ホールで合計打数が72だと2546441085通り
動的計画法で解いてます。