Предмет: Информатика, автор: Аноним

В обороте участвуют монеты достоинством 1 рубль, 2 рубля, 5 рублей и 10 рублей. Сколькими способами можно набрать сумму 64 рубля?

Ответы

Автор ответа: Krock
0
ll - long long

dp[i] = dp[i-1] + dp[i-2] + dp[i-5] + dp[i-10];
ll dp[666];
dp[0] = 1;
for(int i=0;i<=64;i++)
{
dp[i+1]+=dp[i];
dp[i+2]+=dp[i];
dp[i+5]+=dp[i];
dp[i+10]+=dp[i];
cout << i << ": " << dp[i] << endl;
}
это если порядок важен, то есть 2 + 1 != 1 + 2, тогда ответ

489475342266653, наверное
а иначе 644


ll ans=0;
for(int i=0;i<10;i++) // 10
{
for(int j=0;j<20;j++) // 5
{
for(int k=0;k<50;k++) // 2
{
ll now = i*10 + j*5 + k*2;
if(now<=64) ans++;
}
}
}
cout << ans;




Похожие вопросы
Предмет: Алгебра, автор: Ксю13097
Предмет: Алгебра, автор: Аноним