/*
这是一个面值题,题目大致意思就是比如我有1,2,5,10 4种面值纸币,没有限制张数。任意输入一张面值,求出有多少种加起来得和等于这个面值。(实际这个对于张数有限制得同样有作用,只要改一下限制)
*/
#include<iostream>
using namespace std;
int ans = 0;
void get_num(int m[], int total[], int n[], int money)
{
while (true)
{
int sum = 0;
for (int i = 0; i < 4; i++)
sum = sum + m[i] * n[i];
if (sum == money)
{
ans++;
for (int i = 0; i < 4; i++)
cout << n[i] << " ";
cout << endl;
}
int k = 3;
while (k >= 0)
{
if (n[k] <total[k])
{
n[k]++;
break;
}
else
{
n[k] = 0;
k = k - 1;
}
}
if (k < 0)
{
break;
}
}
}
int main()
{
int money;//输入数值
int m[] = { 10,5,2,1 };
cin >> money;
int total[] = { money / 10,money / 5,money / 2,money / 1 };
int n[4] = { 0 };
get_num(m,total,n,money);
cout << ans << endl;
return 0;
}