九度-题目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; }
-