**(题目源于PTA)**求解硬币问题。有1分、2分、5分、10分、50分和100分的硬币各若干枚,现在要用这些硬币来支付W元,最少需要多少枚硬币,试着编写一个函数来进行求解。
函数接口定义:
void solve()
输入格式:依次输入1分、2分、5分、10分、50分和100分面值的硬币枚数。最后输入支付金额W(分)。
(输入样例)12 8 6 8 10 4
325
输出格式:输出所需硬币枚数。
(输出样例)6
void solve()
{ int i,t;
for (i=5;i>=0;i--)
{
t=min(W/A[i].v,A[i].c);
W-=t*A[i].v;
num+=t;
}
}
裁判测试程序样例:
#include <iostream>
#include <algorithm>
using namespace std;
int W;
int num=0;
struct node
{
int v;
int c;
bool operator<(const node &s) const
{
return s.v<v;
}
}A[6]={{1,0},{2,0},{5,0},{10,0},{50,0},{100,0}};
void solve();
int main()
{
for(int i=0;i<6;i++)
cin>>A[i].c;
cin>>W;
solve();
cout<<num;
return 0;
}
/* 请在这里填写答案 */