九度OJ 1072 有多少不同的面值组合

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

时间限制:1 秒

内存限制:32 兆

特殊判题:

提交:2690

解决:1384

题目描述:

某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的邮资?

输入:

题目没有任何输入

输出:

按题目的要求输出可以得到的不同邮资的数目

样例输入:
 
     
样例输出:
 
     
来源:
2002年清华大学计算机研究生机试真题(第I套)
#include<stdio.h>
int find(int a[],int n,int x)
{
    int flag=1;//1代表找不到,0代表找到了
    for(int i=0;i<n;i++)
        if(a[i]==x)
            flag=0;
    return flag;
}
int  main()
{
    int a[210];
    int flag;
    int sum=0;
    int n=0;
    for(int i=0;i<=5;i++)
        for(int j=0;j<=4;j++)
            for(int k=0;k<=6;k++)
            {
                sum=8*i+j*10+18*k;
                if(find(a,n,sum)==1)
                {
                    a[n]=sum;
                    n++;
                }
            }
    printf("%d\n",n-1);
    return 0;
}


这道题如果计算时用double sum = 0.8*i + j*1 + 1.8*k而不是int sum =8*i + j*10 + 18*k得到的结果就是98个,为什么呢? 大家想一想


你可能感兴趣的:(九度OJ,1072)