使用1,5,10,50,100元人民币,组合给定的X元,输出需要的人民币张数
//人民币组合给定x元
#include<iostream>
using namespace std;
int main()
{
int rmb[5] = { 1,5,10,50,100 };//人民币面额
int haveMoney[5] = { 0,0,0,0,0 };//每种人民币的张数
for (int i = 0; i < 5; i++)
{
cin >> haveMoney[i];
}
int money ;
int sumnum = 0;
cout << "输入money:" << endl;
cin >> money;
for (int i = 4; i >= 0; i--)
{
while (money>=rmb[i]&&haveMoney[i]>=1)
{
int num = money / rmb[i];
if (haveMoney[i] > num)
{
money = money - num * rmb[i];
haveMoney[i] = haveMoney[i] - num;
sumnum = sumnum + num;
}
else if(haveMoney[i]<num)
{
money = money - haveMoney[i] * rmb[i];
haveMoney[i] = haveMoney[i] - haveMoney[i];
sumnum = sumnum + num;
}
}
}
if (money > 1)
{
cout << -1 << endl;
}
else
{
cout << sumnum;
}
system("pause");
return 0;
}
注意:1.多个相同类型数据,可以使用数组,而且后面也可以使用for或者while循环2.每次都可以分两种情况,分别计算剩余的钱和剩余的钱的张数