题目1072:有多少不同的面值组合?

浮点数表示并不精确,所以不可将float变量用“==”或“!=”与数字比较,尽量转为整数进行比较

http://bbs.csdn.net/topics/340023422有讨论

View Code
 1 #include<iostream>
 2 #include<string.h>
 3 #include<algorithm>
 4 using namespace std;
 5 int main()
 6 {
 7     int n1=5,n2=4,n3=6;
 8     int m1=8,m2=10,m3=18;
 9     int temp,a[210];
10     int num=0;
11     int i,j,k,t;
12     memset(a,0,sizeof(a));
13     t=0;
14     for(i=0;i<=n1;++i)
15     {
16         for(j=0;j<=n2;++j)
17         {
18             for(k=0;k<=n3;++k)
19             {
20                 temp=i*m1+j*m2+k*m3;
21                 a[t++]=temp;
22             }
23         }
24     }
25     
26     sort(a,a+t);
27     temp=a[0];num=0;
28     for(i=1;i<t;++i)
29     {
30         if(a[i]!=temp)
31         {
32             ++num;
33             temp=a[i];
34             //cout<<a[i]<<" ";
35         }
36     }
37     //cout<<endl;
38     cout<<num<<endl;
39     return 0;
40 }

 

posted @ 2013-01-22 17:18  dupuleng  阅读(116)  评论(0)    收藏  举报