【C语言训练】邮票组合问题

来源:互联网 发布:小小恋歌知乎 编辑:程序博客网 时间:2024/05/16 14:13

题目描述

某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?

输入

输出

可得到多少种 

样例输入

样例输出

提示

将问题进行数学分析,不同张数和面值的邮票组成的邮资可用下列公式计算: 

S=3*i+5*j 

其中i为3分邮票的张数,j为5分的张数 

按题目的要求,3分的邮票可以取0、1、2、3、4张,5分的邮票可以取0、1、2、3张。采用穷举方法进行组合,可以求出这些不同面值不同张数的邮票组合后的邮资。

【代码】

#include <stdio.h> #define N 25 main() {   int a[N],count=0,k;   int i,j,sum;   for(i=0;i<=4;i++)     for(j=0;j<=3;j++)     {       sum=3*i+5*j;       for(k=0;k<count;k++)        if(sum==a[k])           break;       if(sum&&k==count)   //这里要注意下,题目说了至少要一张          a[count++]=sum;       }   printf("%d\n",count); } 


0 0
原创粉丝点击