#include<iostream>
#include<iomanip>
using namespace std;
int main()
{
int a[7]={0,0,0,0,0,0,0,};//张数计数器
int b[7];
cout<<"预设硬币个数:"<<endl;
cout<<"2元:"<<endl;
cin>>b[1];
cout<<"1元:"<<endl;
cin>>b[2];
cout<<"5角:"<<endl;
cin>>b[3];
cout<<"2角:"<<endl;
cin>>b[4];
cout<<"1角:"<<endl;
cin>>b[5];
cout<<"5分:"<<endl;
cin>>b[6];
double sumy=b[1]*2+b[2]*1+b[3]/2+b[4]*0.2+b[5]/10+b[6]*0.05;
cout<<setw(5)<<"库存硬币数为:"<<endl;
cout<<setw(5)<<"2元"<<b[1]<<"个"<<setw(5)<<"1元"<<b[2]<<"个"<<setw(5)<<"5角"<<b[3]<<"个"<<setw(5)
<<"2角"<<b[4]<<"个"<<setw(5)<<"1角"<<b[5]<<"个"<<setw(5)<<"5分"<<b[6]<<"个"<<endl<<endl;
cout<<setw(5)<<"总数为:"<<sumy<<"元"<<endl;
//前部分为预设库存硬币数和总数目
double n[7]={0,200,100,50,20,10,5};
double m;
cout<<"输入要找的钱数(单位为元):"<<endl;
cin>>m;
// if(sumy<m)cout<<"警告!库存不足!!"<<endl;//判断库存是否充足
m=100*m;
a[1]=m/200;//需要2元硬币的数目
m=m-a[1]*200;
a[2]=m/100;//需要1元硬币的数目
m=m-a[2]*100;
a[3]=m/50;//需要5角硬币的数目
m=m-a[3]*50;
a[4]=m/20;//需要1角硬币的数目
m=m-a[4]*20;
a[5]=m/10;//需要1角硬币的数目
m=m-a[5]*10;
a[6]=m/5;//需要5分硬币的数目
//当所有硬币数都充足的时候
if(b[1]>=a[1]&&b[2]>=a[2]&&b[3]>a[3]&&b[4]>=a[4]&&b[5]>=a[5]&&b[6]>=a[6])
{
cout<<"需找钱:"<<endl;
cout<<setw(5)<<"2元"<<a[1]<<"张"<<endl;
cout<<setw(5)<<"1元"<<a[2]<<"张"<<endl;
cout<<setw(5)<<"5角"<<a[3]<<"张"<<endl;
cout<<setw(5)<<"2角"<<a[4]<<"张"<<endl;
cout<<setw(5)<<"1角"<<a[5]<<"张"<<endl;
cout<<setw(5)<<"5分"<<a[6]<<"张"<<endl;
}
if(b[1]<a[1])
{ cout<<"需找钱:"<<endl;
cout<<"2元"<<b[1]<<endl;
int aa=a[2]+(a[1]-b[1])*2;//此时需要的1元个数
if(b[2]<aa)
{
cout<<"1元"<<b[2]<<endl;
int bb=(aa-b[2])*2+a[3];//此时需要5角的个数
if(b[3]<bb)
{
cout<<"5角"<<b[3]<<endl;
int cc=(bb-b[3])*5;//全部转换成1角
int dd=cc/2+a[4];//此时需要2角的个数
if(b[4]<dd)
{
cout<<"2角"<<b[4]<<endl;
int ee=cc-b[4]*2+a[5];//此时需要的1角的个数
if(b[5]<ee)
{
cout<<"1角"<<b[5]<<endl;
int ff=(ee-b[5])*2+a[6];//此时需要5分的个数
if(b[6]<ff)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<ff<<endl;
}//1角不足的时候
else
{
cout<<"1角"<<ee<<endl;
if(b[6]<a[6])//5分不足的时候
cout<<"库存不足!!"<<endl;
else//5分充足的时候
cout<<"5分"<<a[6]<<endl;
}//1角充足的时候
}//2角不足
else
{
cout<<"2角"<<dd<<endl;
if(b[5]<a[5])//1角不足的时候
{
cout<<"1角"<<b[5]<<endl;
int ww=(a[5]-b[5])+a[6];//这时需要5分的个数
if(b[6]<ww)cout<<"库存不足!!"<<endl;
else
cout<<"5分"<<ww<<endl;
}
else//1角充足
{
cout<<"1角"<<a[5]<<endl;
if(b[6]<a[6])
cout<<"库存不足!!"<<endl;
else
cout<<"5分"<<a[6]<<endl;
}//1角充足的时候
}//2角充足
}//5角不足的时候
else
{
cout<<"5角"<<bb<<endl;
if(b[4]<a[4])//当2角不足的时候
{
cout<<"2角"<<b[4]<<endl;
int aaa=(a[4]-b[4])*2+a[5];//这是需要的1角的个数
if(b[5]<aaa)//1角不足
{
cout<<"1角"<<b[6]<<endl;
int bbb=(aaa-b[6])*2+a[6];//这时需要5分的个数
if(b[6]<bbb)cout<<"库存不足!!"<<endl;
else
cout<<"5分"<<bbb<<endl;
}
else//1角充足
{
cout<<"1角"<<aaa<<endl;
if(b[6]<a[6])cout<<"库存不足!!"<<endl;
else
cout<<"5分"<<a[6]<<endl;
}
}
else//当充足的时候
{
cout<<"2角"<<a[4]<<endl;
if(b[5]<a[5])//1角不足
{
cout<<"1角"<<b[5]<<endl;
int ddd=(a[5]-b[5])*2+a[6];//这时需要5分的个数
if(b[6]<ddd)cout<<"库存不足"<<endl;
else cout<<"5分"<<ddd<<endl;
}
else//1角充足
{
cout<<"1角"<<a[5]<<endl;
if(b[6]<a[6])cout<<"库存不足!!"<<endl;
else
cout<<"5分"<<a[6]<<endl;
}
}
}//5角充足的时候
}//1元不足
else//1元充足
{
cout<<"1元"<<a[2]<<endl;
if(b[3]<a[3])//5角不足
{
cout<<"5角"<<b[3]<<endl;
int eee=((a[3]-b[3])*5)/2+a[4];//这时需要2教的个数
if(b[4]<eee)//2角不足
{
cout<<"2角"<<b[4]<<endl;
int fff=(eee-b[4])*2+a[5];//这时需要1角的数目
if(b[5]<fff)//1角不足
{
cout<<"1角"<<b[5]<<endl;
int rrr=(fff-b[5])*2+a[6];//此时需要5分的数目
if(b[6]<rrr)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<rrr<<endl;
}
else//1角充足
{
cout<<"1角"<<fff<<endl;
if(b[6]<a[6])cout<<"库存不足!!"<<endl;
else cout<<"5分"<<a[6]<<endl;
}
}
else//2角充足
{
cout<<"2角"<<eee<<endl;
if(b[5]<a[5])//1角不足
{
cout<<"1角"<<b[5]<<endl;
int hhh=(a[5]-b[5])*2+a[6];//此时需要的5分的数目
if(b[6]<hhh)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<hhh<<endl;
}
else//1角充足
{
cout<<"1角"<<a[5]<<endl;
if(b[6]<a[6])cout<<"库存不足!!"<<endl;
else cout<<"5分"<<a[6]<<endl;
}
}
}
else//5角充足
{
cout<<"5角"<<a[3]<<endl;
if(b[4]<a[4])//2角不足
{
cout<<"2角"<<b[4]<<endl;
int sss=(a[4]-b[4])*2+a[5];//此时需要1角的数目
if(b[5]<sss)//1角不足
{
cout<<"1角"<<b[5]<<endl;
int jjj=(sss-b[5])*2+a[6];//这时需要5分的数目
if(b[6]<jjj)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<jjj<<endl;
}
else//1角充足
{
cout<<"1角"<<sss<<endl;
if(b[6]<a[6])cout<<"库存不足!!"<<endl;
else cout<<"5分"<<a[6]<<endl;
}
}
else//2角充足
{
cout<<"2角"<<a[4]<<endl;
if(b[5]<a[5])//1角不足
{
cout<<"1角"<<b[5]<<endl;
int vvv=(a[5]-b[5])*2+a[6];//此时需要5分的数目
if(b[6]<vvv)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<vvv<<endl;
}
else//1角充足
{
cout<<"1角"<<a[5]<<endl;
if(b[6]<a[6])cout<<"库存不足!!"<<endl;
else cout<<"5分"<<a[6]<<endl;
}
}
}
}
}//2元不足
else //2元充足
{
cout<<"需找钱:"<<endl;
cout<<"2元"<<a[1]<<endl;
if(b[2]<a[2])//1元不足
{
cout<<"1元"<<b[2]<<endl;
int rrr=(a[2]-b[2])*2+a[3];//此时需要5角的个数
if(b[3]<rrr)//5角不足
{
cout<<"5角"<<b[3]<<endl;
int ccc=((rrr-b[3])*5)/2+a[4];//此时需要的2角的个数
if(b[4]<ccc)//2角不足
{
cout<<"2角"<<b[4]<<endl;
int xxx=(ccc-b[4])*2+a[5];//此时需要的1角的个数
if(b[5]<xxx)//1角不足
{
cout<<"1角"<<b[5]<<endl;
int sss=(xxx-b[5])*2+a[6];//此时需要5分的个数
if(b[6]<sss)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<sss<<endl;
}
else//1角充足
{
cout<<"1角"<<xxx<<endl;
if(b[6]<<a[6])cout<<"库存不足!!"<<endl;
else cout<<"5分"<<a[6]<<endl;
}
}
else//2角充足
{
cout<<"2角"<<ccc<<endl;
if(b[5]<a[5])//1角不足
{
cout<<"1角"<<b[5]<<endl;
int dddd=(a[5]-b[5])*2+a[6];//此时需要5分的个数
if(b[6]<dddd)cout<<"库存不足!!"<<endl;
else cout<<"5分"<<dddd<<endl;
}
else//1角充足
{
cout<<"1角"<<a[5]<<endl;
if(b[6]<a[6])//5分不足
cout<<"库存不足!!"<<endl;
else cout<<"5分"<<a[6]<<endl;
}
}
}
else//5角充足
{
cout<<"5角"<<rrr<<endl;
if(b[4]<a[4])//2角不足
{
cout<<"2角"<<b[4]<<endl;
int qqq=(a[4]-b[4])*2+a[5];//此时需要的1角的个数
if(b[5]<qqq)//1角不足
{
cout<<"1角"<<b[5]<<endl;
int zzz=(qqq-b[5])*2+a[6];//此时需要5分的个数
if(b[6]<zzz)cout<<"库存不足!!"<<endl;
else
cout<<"5分"<<zzz<<endl