邮票组合
来源:互联网 发布:三星网络光端机 编辑:程序博客网 时间:2024/05/22 15:09
我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同邮资。现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可以相同也可以不同,要求编程求出用这4种面值所能组成的邮资的最大值。
输出:用这4种面值组成的邮资最大值。
对该问题进行数学分析,不同张数和面值的邮票所组成的邮资可使用下列公式计算:
按题目的要求,a、b、c、d分的邮票均可以取 0、1、2、3、4、5 张,但总共5张。可以采用穷举方法进行组合,从而求出这些不同面值、不同张数的邮票组合后的邮资。
下面是完整的程序:运行结果:
1 3 5 10
The max is 36.↙︎
问题分析
输入:4种邮票的面值。输出:用这4种面值组成的邮资最大值。
对该问题进行数学分析,不同张数和面值的邮票所组成的邮资可使用下列公式计算:
S = a*i + b*j + c*k + d*l
其中 i 为 a 分邮票的张数,j 为b分邮票的张数,k为c分邮票的张数,l为d分邮票的张数。按题目的要求,a、b、c、d分的邮票均可以取 0、1、2、3、4、5 张,但总共5张。可以采用穷举方法进行组合,从而求出这些不同面值、不同张数的邮票组合后的邮资。
下面是完整的程序:
- #include<stdio.h>
- int main()
- {
- int a, b, c, d, i, j, k, l;
- static int s[1000]; /*邮资*/
- scanf("%d %d %d %d", &a, &b, &c, &d); /*输入四种面值邮票*/
- for(i=0; i<=5; i++) /*循环变量i用于控制a分面值邮票的张数,最多5张*/
- for(j=0; i+j<=5; j++) /*循环变量j用于控制b分面值邮票的张数,a分邮票+b分邮票最多5张*/
- for(k=0; k+i+j<=5; k++) /*循环变量k用于控制c分面值邮票的张数,a分邮票+b分邮票+c分邮票最多5张*/
- for(l=0; k+i+j+l<=5; l++) /*循环变量l用于控制d分面值邮票的张数,a分邮票+b分邮票+c分邮票+d分邮票最多5张*/
- if( a*i+b*j+c*k+d*l )
- s[a*i+b*j+c*k+d*l]++;
- for(i=1; i<=1000; i++)
- if( !s[i] )
- break;
- printf("The max is %d.\n", --i);
- return 0;
- }
1 3 5 10
The max is 36.↙︎
阅读全文
0 0
- 邮票组合
- 邮票组合
- 邮票组合
- 邮票组合
- 数组-排序-邮票组合
- 1045: 邮票组合问题*
- 1045:邮票组合问题
- C语言邮票组合例子
- (百例编程)72.邮票组合
- 数的变幻(邮票组合)
- 蓝桥杯 剪邮票(组合数搜索)
- 【C语言训练】邮票组合问题
- 邮票
- 邮票
- 邮票
- 邮票
- uva 242 DP 求s张邮票可以连续组合成最大面值多少的邮票
- 一道C语言面试题——邮票组合问题
- Android7.0中文文档(API)-- Checkable
- 有用的网站信息
- Android设备获取IMEI唯一识别码
- 浅析 Linux 初始化 init 系统,第 1 部分: sysvinit
- php-14
- 邮票组合
- 关于配置Nginx+uwsgi+django的一些坑
- 学习笔记------SUPER&THIS
- 1.1 Android历史与版本进化
- 基于FEA spk的web日志分析
- POJ 1890 Regetni 笔记
- 编程之美2.14 求数组的子数组之和的最大值
- 树莓派查找IP
- 选项卡及多个选项卡应用