求解钱币兑换问题
某个国家仅有1分.2分和5分硬币,将钱n(n≥5)兑换成硬币有很多种兑法。编写一
个实验程序计算出10分钱有多少种兑法,并列出每种兑换方式。
#include<iostream>
using namespace std;
int main()
{
cout << "输入n:";
int n;
cin >> n;
int i, j, k, sum = 0;
cout << "1分" << " " << "2分" << " " << "5分" << endl;
for (i = 0; i <= n; i++) //1分钱兑换成n分最多不超过n个 0~n
for (j = 0; j <= 5; j++) //2分钱兑换成n分最多不超过n/2个 0~n/2
for (k = 0; k <= 2; k++) //5分钱兑换成n分最多不超过n/5个 0~n/5
{
if (i + 2 * j + k * 5 == n) //n分=1分*i+2分*j+5分*k
{
cout << i << " " << j << " " << k << endl;
sum = sum + 1; //统计个数
}
}
cout << "公共方案个数:" << sum;
}