#include <iostream>
using namespace std;
int Count(int a[], int num)
{
int r100, r50, r10, r5, r2, r1;
int j, sum = 0;
for(j = 0; j < num; ++j)
{
if(a[j]/100)
{
r100 = a[j] / 100;
r50 = (a[j] - r100*100) / 50;
r10 = (a[j] - r100*100 - r50*50) / 10;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/50)
{
r100 = 0;
r50 = (a[j] - r100*100) / 50;
r10 = (a[j] - r100*100 - r50*50) / 10;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/10)
{
r100 = 0;
r50 = 0;
r10 = (a[j] - r100*100 - r50*50) / 10;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/5)
{
r100 = 0;
r50 = 0;
r10 = 0;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/2)
{
r100 = 0;
r50 = 0;
r10 = 0;
r5 = 0;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/1)
{
r100 = 0;
r50 = 0;
r10 = 0;
r5 = 0;
r2 = 0;
r1 = a[j];
}
sum += r100 + r50 + r10 + r5 + r2 + r1;
}
return sum;
using namespace std;
int Count(int a[], int num)
{
int r100, r50, r10, r5, r2, r1;
int j, sum = 0;
for(j = 0; j < num; ++j)
{
if(a[j]/100)
{
r100 = a[j] / 100;
r50 = (a[j] - r100*100) / 50;
r10 = (a[j] - r100*100 - r50*50) / 10;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/50)
{
r100 = 0;
r50 = (a[j] - r100*100) / 50;
r10 = (a[j] - r100*100 - r50*50) / 10;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/10)
{
r100 = 0;
r50 = 0;
r10 = (a[j] - r100*100 - r50*50) / 10;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/5)
{
r100 = 0;
r50 = 0;
r10 = 0;
r5 = (a[j] - r100*100 - r50*50- r10*10) / 5;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/2)
{
r100 = 0;
r50 = 0;
r10 = 0;
r5 = 0;
r2 = (a[j] - r100*100 - r50*50- r10*10 - r5*5) / 2;
r1 = a[j] - r100*100 - r50*50- r10*10 - r5*5 - r2*2;
}
else
if(a[j]/1)
{
r100 = 0;
r50 = 0;
r10 = 0;
r5 = 0;
r2 = 0;
r1 = a[j];
}
sum += r100 + r50 + r10 + r5 + r2 + r1;
}
return sum;
}
-----------------------最开始暴力破解-----------------------------------------------------
#include <iostream>
using namespace std;
int main()
{
int n;
while(cin >> n && n)
{
int sum = 0;
while(n--)
{
int m, num, i;
int b[6] ={100, 50, 10, 5, 2, 1};
cin >> m;
for(i = 0; i < 6; ++i)
{
num = m/b[i];
sum += num;
m = m%b[i];
}
}
cout << sum << endl;
}
}
这里用逆向思维进行解题,效果很好!!!