c语言邮票组合有关程序,C语言邮票组合代码解析

阅读: 评论:0

c语言邮票组合有关程序,C语言邮票组合代码解析

c语言邮票组合有关程序,C语言邮票组合代码解析

原标题:C语言邮票组合代码解析

我们寄信都要贴邮票,在邮局有一些小面值的邮票,通过这些小面值邮票中的一张或几张的组合,可以满足不同邮件的不同邮资。现在,邮局有4种不同面值的邮票。在每个信封上最多能贴5张邮票,面值可以相同也可以不同,要求编程求出用这4种面值所能组成的邮资的最大值。

输入: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

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.

Linux公社的RSS地址:.aspx

本文永久更新链接地址:.htm返回搜狐,查看更多

责任编辑:

本文发布于:2024-02-01 06:57:38,感谢您对本站的认可!

本文链接:https://www.4u4v.net/it/170674186034717.html

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。

标签:组合   邮票   语言   代码   程序
留言与评论(共有 0 条评论)
   
验证码:

Copyright ©2019-2022 Comsenz Inc.Powered by ©

网站地图1 网站地图2 网站地图3 网站地图4 网站地图5 网站地图6 网站地图7 网站地图8 网站地图9 网站地图10 网站地图11 网站地图12 网站地图13 网站地图14 网站地图15 网站地图16 网站地图17 网站地图18 网站地图19 网站地图20 网站地图21 网站地图22/a> 网站地图23