HDU 2021 发工资咯
很简单,面额从大到小去减就可以了,优化一下的话就是写了个tryIndex去记录当前有可能用到的最大面额
#include <stdio.h>
#include <iostream>
using namespace std;
const int g_MoneyList[] = {100,50,10,5,2,1};
void main()
{
int n;
while(cin>>n && n!=0)
{
int *salaryList = new int[n];
for(int i=0; i<n; i++)
scanf("%d",&salaryList[i]);
int nTotalNum = 0;
for(int i=0;i<n;i++)
{
int nMoney = salaryList[i];
int tryIndex = 0;
while(nMoney != 0)
{
if(nMoney >= g_MoneyList[tryIndex])
{
nMoney -= g_MoneyList[tryIndex];
nTotalNum++;
}
else
tryIndex++;
}
}
printf("%d\n",nTotalNum);
}
}