看了刘汝佳的书,随便邹了一道题目,跟找硬币意思差不多
输入n,确定硬币个数
在输入n个硬币的面值
用贪心法解决
贪心与二分一样,先排序,再贪心。
#include<iostream>
#include<cstdlib>
using namespace std;
int cmp(const void *a,const void *b)
{
return *(int *)b-*(int *)a;
}
int main()
{
int n,input;
cin>>n;
int* con=new int[n];
for(int i=0;i<n;i++)
cin>>con[i];
qsort(con,n,sizeof(int),comp);
while(cin>>input&&input!=0)
{
for(int i=0;i<4;i++)
{
if(con[i]<=input)
{
int j=input/con[i];
cout<<j<<"*"<<con[i]<<endl;
input-=j*con[i];
cout<<input<<endl;
}
}
}
return 0;
}