易语言经典算法

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

易语言经典算法
易语言经典算法
1.取所有质数
2.求最小公倍数
3.求最大公约数
4.汉诺塔
5.9X9乘法表
6.猫捉老鼠(筛选法)
7.水仙花数问题
8.计算组合
9.身份证升级15位升级到18位
10.用冒泡法排序数字
11.九宫计算
12.奶牛问题
13.求阶乘
14.折半查找
15.给歌手打分
16.航线设置
17.数字全排列
18.借书方案
19.求直角三角形
20.二分排序
21.抢30
22.求回文数
23.斐波那契数列(递推法)
24.分块查找
25.求帕斯卡三角(杨辉三角)
26.箱子问题(贪婪法)
27.寻找文件(递归法)
28.求最大公约数(递归法)
29.取不重复数(排除法)
30.拉丁方
31.波松瓦分酒
32.皇后问题
33.背包问题
34.角谷猜想
35.邮票组合
36.贮油点
37.分解质因数
38.任意进制转换(大数)
39.计算星期几(常用公式)
40.计算星期几(蔡勒公式)
41.猴子吃桃子
42.马踏棋盘
43.打鱼还是晒网
44.九位累进可除数
45.十进制转为二进制
46.九连环
47.找窃贼
48.哥德巴赫猜想
49.最小生成数
50.农夫过河
51.旅游最省钱路径
52.马克思手稿中的数学题
53.上楼梯(递归).e
54.上楼梯(非递归)
55.金额大小写转换
56.求一元二次方程的根(二分法)
57.数字与IP地址间的转换
58.八皇后问题(回溯法)
59.求N阶幻方
60.计算分数的精确值
61.找零钱
62.求一元二次方程的根(公式法)
63.比赛日程(分治法)
64.两个有序数组的合并
65.统计投色子(2个)的结果
66.12小球问题
67.改进冒泡排序法
68.螺旋数组
69.射击环数
70.猜数字游戏
71.桶排序
72.造币厂问题
73.直接插入排序
74.搬砖
75.公车座位巧安排
76.韩信点兵(中国剩余定理)
77.黑洞数
78.矩阵相乘
79.螺旋矩阵问题(多循环法)
80.买水果问题
81.求平方根
82.求任意三角形面积
83.全排列问题(递推法)
84.怎样组合值最大
85.取两数之间均匀分布的随机数
算法:递归
递推法分块查找筛选法枚举法冒泡法二分法贪婪法
序号:001
使用算法:筛选法
问题:取N以内的所有质数数量并显示,
问题描述:
求N(N>0)个自然数中的所有质数数量,并显示
问题分析:
先把所有质数以外的数,打上“1“的标志,最后搜索整型数组,找出值为0的个数,就是质数的个数!
备注:
易语言例程:001.取所有质数.e
序号:002
使用算法:循环检验
问题:求最小公倍数
问题描述:
求任意2个自然数的最小公倍数
问题分析:
我们只要认准一个数,先从自身开始和另一个数求余数比较,为0那么这个数就是最小公倍数,如果不为0,那么把这个数不断翻倍再比较。

备注:
易语言例程:002.求最小公倍数.e
序号:003
使用算法:辗转相除法
问题:求最大公约数
问题描述:
求任意2个自然数的最大公约数
问题分析:
用辗转相除法求最大公约数
用辗转相除法求两个数的最大公约数的步骤如下:
先用小的一个数除大的一个数,得第一个余数;
再用第一个余数除小的一个数,得第二个余数;
又用第二个余数除第一个余数,得第三个余数;
这样逐次用后一个数去除前一个余数,直到余数是0为止。

那么,最后一个除数就是所求的最大公约数(如果最后的除数是1,那么原来的两个数是互质数)。

例如求1515和600的最大公约数,
第一次:用600除1515,商2余315;
第二次:用315除600,商1余285;
第三次:用285除315,商1余30;
第四次:用30除285,商9余15;
第五次:用15除30,商2余0。

1515和600的最大公约数是15。

辗转相除法是求两个数的最大公约数的方法。

如果求几个数的最大公约数,可以先求两个数的最大公约数,再求这个最大公约数与第三个数的最大公约数。

这样依次下去,直到最后一个数为止。

最后所得的一个最大公约数,就是所求的几个数的最大公约数。

备注:
易语言例程:003.求最大公约数.e
序号:004
使用算法:未知
问题:汉诺塔
问题描述:
汉诺塔是一种古老的游戏,是指在一柱(设为“甲”柱)上从下向上依次放着从大到小的一叠盘子,要把该柱(“甲”柱)上的盘子全部搬到指定的柱上(设为“乙”柱),在搬运过程中,可以利用另外一根柱子(设为“丙”柱)来协助搬移,要求在搬移过程中必须始终(即每搬一步后)保持每根柱上(“甲”、“乙”、“丙”柱)的盘子都是处于从大到小(从柱子下面至上面)依次排列的状态,试问怎样搬移盘子?最少需要搬几次才能把“甲”柱上的全部盘子移至“乙”柱?古印度梵教曾利用这种方法来推算宇宙末日之时间。

问题分析:
在移动的过程中,必须按照下述移动规则:1. 直径较小的圆盘永远置于直径较大的圆盘上。

2. 圆盘可任意地由任何一个木椿移到其他的木椿上。

3. 每一次仅能移动一个圆盘。

用递归调用的方法求解。

备注:
易语言例程:004.汉诺塔.e
序号:005
使用算法:未知
问题:9X9乘法表
问题描述:
列出99乘法表
问题分析:
被乘数和乘数都是从1-9依次递增1,到9后继续返回1重新递增!
备注:
易语言例程:005.99乘法表.e
使用算法:筛选法
问题:猫捉老鼠(筛选法)
问题描述:
所谓筛选法就是从全集中将不合格的项全部删去,剩下的就是答案。

30个只老鼠围成一圈,花猫从第一只开始数,数到5或5的倍数就吃掉,问最有后一个吃掉的应该是站在地几个位置上的老鼠?
这是个经典问题,解法就是模拟整个过程,有点类似于循环队列。

另外,为了程序上处理方便,可以假定所有老鼠都被吃掉,然后看一下最后一个被吃掉的是谁。

另一处为了处理方便而采取的措施是pos的初始值设为-1.很多时候,对问题的问法稍作变动,或者将初始值、加减变量的位置稍作调整,用程序处理起来会方便很多。

备注:
例程:006.猫捉老鼠(筛选法).e
序号:007
使用算法:枚举法
问题:水仙花数问题
问题描述:
在100-999这些三位数中,有些数本身等于它百位上数字的立方加上十位上数字的立方加上个位上数字的立方,这样的三位数叫水仙花数。

那么现在我们就要来找出这些三位数。

问题分析:
“根据水仙花数的特点:我们只要将100-999这些三位数按照下面的规律逐个比较就可以了。

比如:153=1的3立方+5的立方+3的立方,那么这个数就是水仙花数。


备注:
易语言例程:007.水仙花数问题.e
序号:008
使用算法:递归
问题:计算组合
问题描述:
找出从自然数1,2,...... n中任取r个数的组合。

例如n=5,r=3 问题分析:
分析所列的10个组合,可用这样的递归思想来考虑慈和函数的算法,设子程序[计算分组子程序(m,k)] 即找出自然数1,2。

m中任取k个数的所有组合。

当组合的第一个数字选定时,其后面的数字是从余下的m-1个数中取k-1个数的所有组合。

这就将求m个数中去r个数的组合问题转化成求m-1个数中取k-1数的组合。

备注:
易语言例程:008.m选n(生成法).e
使用算法:固定算法
问题:身份证升级15位升级到18位
问题描述:
将个人旧身份证15位升级到18位
问题分析:
公式:∑(ai×Wi)(mod 11)……………………………………
公式中:
i----表示号码字符从由至左包括校验码在内的位置序号;
ai----表示第i位置上的号码字符值;
Wi----示第i位置上的加权因子,其数值依据公式Wi=2(n-1)(mod 11)计算得出。

i 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1
ai 3 4 0 5 2 4 1 9 8 0 0 1 0 1 0 0 1 a1
Wi 7 9 10 5 8 4 2 1 6 3 7 9 10 5 8 4 2 1
ai×Wi 21 36 0 25 16 16 2 9 48 0 0 9 0 5 0 0 2 a1
易语言例程:009.身份证升级15位升级到18位.e
序号:010
使用算法:冒泡法
问题:用冒泡法排序数字
问题描述:
使用冒泡排序法按顺序排序一批数字
问题分析:
首先将第一个记录的关键字和第二个记录的关键字进行比较,若为逆序,则交换两记录的值。

然后比较第二个和第三个记录的关键字,依次类推,直至最后一个记录也进行过比较。

上述过程称为第一趟冒泡排序,其结果是最大值被安置到最后一个记录的位置上。

进行第二趟排序,对前N-1个记录进行同样的排序。

依次类推,当进行完N-1趟排序后,所有记录有序排列。

备注:
易语言例程:010.冒泡排序.e
使用算法:推导法
问题:九宫计算
问题描述:
1到9九个数字任意组合成一个三行三列的九宫。

使每行没列没一斜行的和都相同计算出有多少种结果。

问题分析:
用两层循环试探所有可能的组合如果合格则显示不合格则淘汰
备注:
易语言例程:011.九宫计算.e
序号:012
使用算法:推导法
问题:奶牛问题
问题描述:
一个农场有头母牛,现在母牛才一岁,要到四岁才能生小牛,四岁之后,每年生一头小牛。

假设每次生的都是母牛,并且也遵守4年才生育并生母牛的原则。

问n年之后多少头牛?
问题分析:
因为初试奶牛已经1岁,可以将规律计算为:
年数: 1 2 3 4 5 6 7 8 9 10
奶牛年龄2 3 4 5 6 7 8 9 10 11
牛: 1 1 2 3 4 5 7 9 11 13
通过上面规律可以推导出结果。

备注:
易语言例程:012. 奶牛问题.e
序号:013
使用算法:
问题:求阶乘
问题描述:
输入一个整数,求出其阶乘。

问题分析:
0的阶乘等于1,1的阶乘等于1
N的阶乘等于N乘以(N-1)的阶乘
由此可以断定N的阶乘是1*2*3*4......(n-1)*n
备注:
易语言例程:013. 阶乘计算.e
使用算法:二分法
问题:折半查找
问题描述:
10个篮子里分别放着10种好吃的(无重复)水果是按编号大小顺序放在1~10号篮子。

怎样快速找到水果?
问题分析:
折半查找的基本思想:
设查找元素储存在一个一维数组中,已经按关键字递增(或递减)的方式排列的情况下,可进行折半查找。

其方法是:首先将要查的关键字值与数组中间位置上的记录的关键字比较.”
1 若相等,则查找成功;
2 若大于中间位置的关键字则说明要查记录只可能在后半段中,下一步应在后半部分再进行折半查找;
3 若小于中间位置关键字说明要查记录只可能在前半部分,下一步应该在前半部分再进行折半查找。

逐步缩小范围直到查找成功或子表为空时失败为止。

备注:
易语言例程:014.折半查找.e
序号:015
使用算法:求最大值,求最小值,求平均数
问题:给歌手打分
问题描述:
在歌星大奖赛中,有10个评委为参赛的选手打分,分数为1~100分。

选手最后得分为:去掉一个最高分和一个最低分后其余8个分数的平均值。

求了其中一个选手的最后得分。

要求出歌手的得分,首先将10个评委的分数相加在一起,接着找出10个评委中的最高分和最低分,将前面求出的和减去这个最高分和最低分,得出的结果再除以8,最后的结果为歌手的得分。

备注:
这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。

易语言例程:015.给歌手打分.e
使用算法:求最大不下降序列
问题:航线设置
问题描述:
美丽的莱茵河畔,每边都分布着N个城市,两边的城市都是唯一对应的友好城市,现需要在友好城市开通航线以加强往来.但因为莱茵河常年大雾,如果开设的航线发生交叉现象就有可能出现碰船的现象.现在要求近可能多地开通航线并且使航线不能相交!
问题分析:
用一个数组来存放对应的友好城市的代码和友好城市的对数,然后在规划时先从倒数第二个城市开始,找出可以设置的航线条数和下一条航线开始的城市,如果正在规划的城市的航线数大于已知的航线条数,则存储这个航线条数和城市的代码,这样一直找下去,把最多的航线数都找出来,最后把最多的航线数和对应的友好城市显示出来。

备注:
易语言例程:016.航线设置.e
序号:017
使用算法:回溯法
问题:数字全排列
问题描述:
任意给出从1到N的N个连续的自然数,求出这N个自然数的各种全排列。

如N=3时,共有以下6种排列方式:
123,132,213,231,312,321。

数字不能重复,N由键盘输入(N<=9)。

应用回溯法,每个数的取法都有N个方向(1——N),当取够N 个数时,输出一个排列,然后退后一步,取前一个数的下一个方向(即前一个数+1),并且要保证所有数字不能重复。

当前数字的所有方向都取完时,继续退一步,一直重复到第一个数为止。

备注:
易语言例程:
使用算法:枚举法
问题:借书方案
问题描述:
小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?
问题分析:
本问题实际上是一个排列问题,即求从5个中取3个进行排列的方法的总数。

首先对五本书从1至5进行编号,然后使用穷举的方法。

假设三个人分别借这五本书中的一本,当三个人所借的书的编号都不相同时,就是满足题意的一种借阅方法。

通过上面规律可以推导出结果。

备注:
易语言例程:018.借书方案.e
序号:019
使用算法:勾股定理
问题:求直角三角形
问题描述:
在直角三角形中,两个直角边的平方和等于斜边的平方,也就是非常著名的“勾股定理”,那么这100以内的数字中,就存在着这样的一些数,比如:3,4,5,3的平方加上4的平方等于5的平方,这三个数就可以组成一个直角三角形。

找出100以内的所有能组成直角三角形的数值,并显示出来。

问题分析:
首先设法得到从3到100之间的数的两组合。

利用二重循环可以达到这一目的。

令外循环变量为A,A从1到99。

令内循环的循环变量为B,B从A+1到100。

然后在循环体内判断A和B是否满足等式(1)。

将满足等式的A和B及C打印出来。

为了缩短机器运算时间,我们可以利用勾股数的奇偶特性。

即在A和B中一个是奇数,另一个必定是偶数。

那么可以让B从A+1开始,每次增加步长为2。

因为A若是奇数,A+1就是偶数。

以后步长是2,B总是为偶数。

如果A是偶数,A+1就是奇数。

以后步长是2,B 总为奇数。

我们用整形变量I、J、L分别代表A、B、C
备注:
易语言例程:019.求直角三角形.e
使用算法:二分法
问题:二分排序
问题描述:
用二分法将一些无顺序的数列按从大到小或者从小到大的顺序排列
问题分析:
通过一趟排序将待排的记录分割为独立的两部分,其中一部分记录的关键字均比另一部分记录的关键字小,然后再对这两部分记录继续进行排序,以达到整个序列有序。

备注:
易语言例程:020.二分排序.e
序号:021
使用算法:未知
问题:抢30
问题描述:
这是中国民间的一个游戏。

两人从1开始轮流报数,每人每次可
报一个数或两个连续的数,谁先报到30,谁就为胜方。

问题分析:
谁先走第一步是可选的。

若计算机走第一步,那么计算机一定是赢家。

若人先走一步,那么计算机只好等待人犯错误,如果人先走第一步且不犯错误,那么人就会取胜;否则计算机会抓住人的一次错误使自己成为胜利者。

备注:
易语言例程:021.抢30.e
序号:022
使用算法:未知
问题:求回文数
问题描述:
显示一个自然数,要求这个自然数的平方具有对称性质(也称回文数);如11的平方121,22的平方484
问题分析:
对于要判断的数n,计算出其平方后(存于a),将a的每一位进行分解,再按a的从低到高的顺序将其恢复成一个数k(如n=13,则a=169且k=961),若a等于k则可判定n为回文数。

备注:
易语言例程:022.求回文数.e
使用算法:递推法
问题:斐波那契数列(递推法)
问题描述:
斐波那契数列为:0,1,1,2,3,5,8.......,即:当前项等于它前面两项的和。

求出有限位数个斐波那契数列并显示出来。

问题分析:
求数列子程序(0)=0
求数列子程序(1)=1
求数列子程序(n)=求数列子程序(n-2)+求数列子程序(n-1)
通过上面规律可以推导出结果。

备注:
递推法是利用问题本身具有的递推关系求问题解的一种方法。

设要求问题的规模为N的解,当N=1时,解或为已知,或能很方便地得到解。

能采用递推法构造算法的问题有重要的递推性质,即当得到问题规模为i-1的解后,有问题的递推性质,能从已求得的规模为1,2,......,i-1的一系列解,构造出问题规模为i的解。

这样程序可以从i=0或i=1出发,重复地,由一直至i-1规模的解,通过递推,获得规模为i的解,直至规模为N的解。

易语言例程:023.斐波那契数列(递推法).e
序号:024
使用算法:分块查找
问题:分块查找
问题描述:
有1000个箱子。

每个箱子按种类随机存放着1到1000任意个数个苹果。

分为大,中,小三种。

大箱子存500或500以上个苹果,中箱子存100到499个苹果,小箱子只存储100个以下的苹果,选择不同的箱子种类显示出所有属于这种箱子的编号。

问题分析:
把列表中属于同一种类的箱子的位置存于同一数组中,根据选择的种类显示出不同种类的箱子的编号。

分块查找的基本思想:
分块查找又称索引顺序查找,是对顺序查找方法的一种改进,其性能介于顺序查找和折半查找之间。

分块查找过程中首先将表分成若干块,每块中的关键字不一定有序,但块于块之间是有序的,即后一块中所有记录的关键字均大于前一个块中的关键字。

备注:
易语言例程:024.分块查找.e
使用算法:递归
问题:求帕斯卡三角(杨辉三角)
问题描述:
取N阶的帕斯卡(杨辉)三角并显示
问题分析:
运用递归的方法取N层帕斯卡三角,并显示。

三角形边界上的数都是1,内部的每个数是位于它上面的两个数之和。

三角形边界上的数都是1,内部的每个数是位于它上面的两个数之和。

假设f(row, col)表示杨辉三角的第row行的第col个元素,那么:f(row, col) = 1 (col = 1 或者row = col),也就是递归的停止条件。

f(row, col) = f(row - 1, col - 1) + f(row - 1, col),也就是上一行的两个相邻元素的和。

递归调用求解。

备注:
易语言例程:024.分块查找.e
序号:026
使用算法:贪婪法
问题:箱子问题(贪婪法)
问题描述:
有六个箱子,其体积分别为60,45,35,20,20,20,
问题分析:
贪心法是一种不追求最优解,只希望得到较满意解的方法。

贪心法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费的大量时间。

贪心法常以当前情况为基础作最优选择,而不考虑各种可能的整体情况,所以贪心法不要回朔。

依次将物品放到它第一个能放进去的箱子中,该算法不能保证找到最优解,但还是能找到非常好的解。

备注:
易语言例程:026.贪婪算法.e
序号:027
使用算法:递归
问题:寻找文件(递归法)
问题描述:
寻找磁盘中指定的文件
问题分析:
运用递归法寻找磁盘指定的文件,按照以下顺序开始寻找
1.找当前目录中的所有文件,找到就显示
2.然后找它的子目录,如果找到子目录,则子目录为当前目录,返回1继续找
3.最后找到所有指定文件
备注:
易语言例程:027.寻找文件(递归法).e
使用算法:递归
问题:求最大公约数(递归法)
问题描述:
求任意2个自然数的最大公约数,要求用递归法
问题分析:
递归法在前几个例程中已经介绍,就是调用自身,求最大公约数的方法在第3个例程中也已经介绍。

备注:
易语言例程:028.求最大公约数.e
序号:029
使用算法:排除法
问题:取不重复数(排除法)
问题描述:
随机取一定范围内的指定数量不重复数,比如从1-100中随机取30个不重复数字
问题分析:
使用排除法,先初始化范围,然后放到一个数组中,取出一个后,将这个位置的内容删除,那么下次就不会再重复取了,随机取的不是数字,而是位置。

备注:
易语言例程:029.取不重复数(排除法).e
序号:030
使用算法:排除法
问题:求4行,4列的拉丁方
问题描述:
构造4行、4列的拉丁方阵,使方阵中的每一行和每一列中数字1到4只出现一次。

4阶拉丁方阵见如下:
1 2 3 4
2 3 4 1
3 4 1 2
4 1 2 3
问题分析:
构造拉丁方阵的方法很多,这里给出最简单的一种方法。

观察给出的例子,可以发现:若将每一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1到4顺序构成;对于第i行,这个环的开始数字为i。

按照此规律可以很容易的写出程序。

下面给出构造4阶拉丁方阵的程序。

备注:
易语言例程:030.拉丁方.e
使用算法:推导法
问题:波松瓦分酒
问题描述:
某人有12升的啤酒一瓶,想从中倒出6升,但他没有6升的容器,仅有一个8升和5升的容器,怎样倒才能将啤酒分为两个6升呢?
问题分析:
用a,b,c代表12升、8升和5升的瓶子,求出不定方程的整数解,按照不定方程的意义则倒法为:
a ->
b ->
c ->a
x y
倒酒的规则如下:
1) 按a -> b -> c ->a的顺序;
2) b倒空后才能从a中取
3) c装满后才能向a中倒
备注:
易语言例程:031.拉丁方.e
序号:032
使用算法:递归法
问题:皇后问题
问题描述:
国际象棋中皇后可以攻击所在行,列,斜线上的每一个位置,按照此规则要在一个n*n的棋盘上放n个皇后使每一个皇后都不互相攻击。

问题分析:
(1)引入1个数组模拟棋盘上皇后的位置
皇后位置数组[j]=4,表示第j列,第皇后位置数组[j]行有皇后
引入3个工作数组
行数组[k]=1,表示第k行没有皇后
右高左低数组[k]=1,表示第k条右高左低的斜线上没有皇后
左高右低数组[k]=1,表示第k条左高右低的斜线上没有皇后
观察棋盘找到规律
同一右高左低的斜线上的方格,它们的行号和列号之和相等;
同一左高右低的斜线上的方格,它们的行号和列号只差相等;
开始时,所有行和斜线上都没有皇后,从第一列的第一行配置第一个皇后开始,在第m列的皇后位置数组[m]行放置了一个合理的皇后之后,准备考察第m+1列时,在数组行数组[],右高左低数组[],左高右低数组[]中为第m列,皇后位置数组[m]的位置设定有皇后标志如果按此放置位置得不到结果,则把当前列中有皇后标记改为无皇后标记。

依次类推
当在棋盘最后一列上也找到合适的位置后得到结果。

通过上面规律可以推导出结果。

备注:
易语言例程:032.皇后问题.e
使用算法:递归法
问题:背包问题
问题描述:
随机出现十种物品,每个重量100千克以内。

设定一个背包的载重上限,计算出一种装物品的方法使物品重量正好等于背包载重上限。

问题分析:
对每个物品考虑选择放入和不放入背包两种情况
首先,考查物品被放入的情况,这种可能性当且仅当包含它不会超出背包上限时才是可行的。

继续考查下一个物品。

其次,还要考查物品不被放入背包的情况,这种可能性当且仅当不包含物品其它物品也能找到合理的组合。

考查完物品后,继续考查下一个物品
依次类推,最终找到一个合理组合或没有合理组合
备注:
易语言例程:033.背包问题.e
序号:034
使用算法:循环判断
问题:角谷猜想
问题描述:
日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。

猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。

问题分析:
判断给定的一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,
一直到结果变为1,并且将每一步的运算过程和得到的新的自然数显示出来。

通过上面规律可以推导出结果。

备注:
易语言例程:034.角谷猜想.e
使用算法:穷举法
问题:邮票组合
问题描述:
某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?
问题分析:
将问题进行数学分析,不同张数和面值的邮票组成的邮资可用下列公式计算:
S=3*i+5*j
其中i为3分邮柰的张数,j为5分的张数
按题目的要求,3分的邮票可以取0、1、2、3、4张,5分的邮票可以取0、1、2、3张。

采用穷举方法进行组合,可以求出这些不同面值不同张数的邮标组合后的邮资。

备注:
易语言例程:035.邮票组合.e
序号:036
使用算法:递推法
问题:贮油点
问题描述:
一辆重型卡车欲穿过1000公里的沙漠,卡车耗油为1升/公里,卡车总载油能力为500公升。

显然卡车一次是过不了沙漠的。

因此司机必须设法在沿途建立几个储油点,使卡车能顺利穿越沙漠,试问司机如何建立这些储油点?每一储油点应存多少油,才能使卡车以消耗最少油的代价通过沙漠?
问题分析:。

相关文档
最新文档