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

一.题目描述:
某人有8角的邮票5张,1元的邮票4张,1元8角的邮票6张,用这些邮票中的一张或若干张可以得到多少种不同的邮资?
输入:
题目没有任何输入
输出:
按题目的要求输出可以得到的不同邮资的数目
样例输入:
样例输出:

二.题目分析

    本题中需要注意数据类型的选择,若选用double型,会由于精度问题,进行==和!=比较过程中出错,因此需要化成int型,所以就元转换角喽

三.代码

#include <stdio.h>
#include <stdlib.h>
/*  出错
int main()
{
    int i=0,j,k,a,b,c;  //a-0.8 b-1 c-1.8
    double sum[100],s;

    for(a=0;a<=5;a++)
    {
        for(b=0;b<=4;b++)
        {
            for(c=0;c<=6;c++)
            {
                s=a*0.8+b*1+c*1.8;
                if(i!=0)
                {
                    for(j=0;j<i;j++)
                        if(sum[j]==s)
                            break;
                    if(j==i)
                       sum[i++]=s;
                }
                else
                    sum[i++]=s;
            }
        }
    }

    printf("%d\n",i);
    return 0;
}
*/

int main()
{
    int i=0,j,k,a,b,c;  //a-0.8 b-1 c-1.8
    int sum[100],s;

    for(a=0;a<=5;a++)
    {
        for(b=0;b<=4;b++)
        {
            for(c=0;c<=6;c++)
            {
                s=a*8+b*10+c*18;
                if(i!=0)
                {
                    for(j=0;j<i;j++)
                        if(sum[j]==s)
                            break;
                    if(j==i)
                       sum[i++]=s;
                }
                else
                    sum[i++]=s;
            }
        }
    }

    printf("%d\n",i-1);
    return 0;
}





  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值