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

http://ac.jobdu.com/problem.php?pid=1072

题目描述:

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

输入:

题目没有任何输入

输出:

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

样例输入:

样例输出:

来源:
2002年清华大学计算机研究生机试真题(第I套)
类似于Hash,所有的数字相加为188.定义一个大小大于188的整型数组。将组合得到的各种邮资结果对应数组中的位置的值设置为不为0。最后找到所有不为0的个数。
#include <stdio.h>
#include <string.h>

using namespace std;
const int N=201;

int main()
{
    int money[N];
    memset(money,0,sizeof(money));
    int cnt=0;
    for(int i=0; i<=5; i++)
    {
        for(int j=0; j<=4; j++)
        {
            for(int k=0; k<=6; k++)
            {
                int tmp=8*i+10*j+18*k;
                if(tmp==0) continue;
                else{
                    money[tmp]++;
                }
            }
        }
    }

    int count=0;
    for(int i=0; i<=200; i++)
    {
        if(money[i]!=0)
            count++;
    }

    printf("%d\n", count);
    return 0;
}

 

  

posted @ 2017-04-23 11:29  悟空的爸爸  阅读(241)  评论(0编辑  收藏  举报