poj 2581 Exact Change Only 枚举

View Code
 1 #include <stdio.h>
2
3 int ar[5],a,b,c,d,m;
4
5
6 int solve()
7 {
8 for (d=0;d<=ar[4];d++)
9 {
10 if(d>m)break;
11 for (c=0;c<=ar[3];c++)
12 {
13 if(c*5+d>m)break;
14 for (b=0;b<=ar[2];b++)
15 {
16 if(b*10+c*5+d>m)break;
17 for (a=0;a<=ar[1];a++)
18 {
19 if(a*25+b*10+c*5+d==m)return 1;
20 if(a*25+b*10+c*5+d>m)break;
21 }
22 }
23 }
24 }
25 return 0;
26 }
27
28 int main()
29 {
30 float n;
31 int i;
32 while (scanf("%f",&n)!=EOF)
33 {
34 n*=100;
35 m=(int)n;
36 for (i=1;i<=4;i++)
37 scanf("%d",&ar[i]);
38
39 if(!solve())printf("NO EXACT CHANGE\n");
40 else printf("%d %d %d %d\n",a,b,c,d);
41 }
42 return 0;
43 }
posted @ 2011-10-26 18:40  104_gogo  阅读(254)  评论(0编辑  收藏  举报