VB数学型大作业题目.pdf

上传人:修**** 文档编号:75976458 上传时间:2023-03-06 格式:PDF 页数:14 大小:769.96KB
返回 下载 相关 举报
VB数学型大作业题目.pdf_第1页
第1页 / 共14页
VB数学型大作业题目.pdf_第2页
第2页 / 共14页
点击查看更多>>
资源描述

《VB数学型大作业题目.pdf》由会员分享,可在线阅读,更多相关《VB数学型大作业题目.pdf(14页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。

1、VB 数学型大作业题目下面题目中任选两个完成。1.歌星大奖赛在歌星大奖赛中,有 10 个评委为参赛的选手打分,分数为 1100 分。选手最后得分为:去掉一个最高分和一个最低分后其余8 个分数的平均值。请编写一个程序实现。算法提示:算法提示:这个问题的算法十分简单,但是要注意在程序中判断最大、最小值的变量是如何赋值的。2.求最大数问 555555 的约数中最大的三位数是多少?算法提示:算法提示:根据约数的定义,对于一个整数 N,除去 1 和它自身外,凡能整除 N 的数即为 N 的约数。因此,最简单的方法是用 2 到 N-1 之间的所有数去除 N,即可求出 N 的全部约数。本题只要求取约数中最大的

2、三位数,则其取值范围可限制在100 到 999 之间。3.高次方数的尾数求 13 的 13 次方的最后三位数算法提示:算法提示:解本题最直接的方法是:将13 累乘 13 次方截取最后三位即可。但是由于计算机所能表示的整数范围有限,用这种“正确”的算法不可能得到正确的结果。事实上,题目仅要求最后三位的值,完全没有必要求13 的 13 次方的完整结果。研究乘法的规律发现:乘积的最后三位的值只与乘数和被乘数的后三位有关,与乘数和被乘数的高位无关。利用这一规律,可以大大简化程序。4.杨辉三角形在屏幕上显示杨辉三角形11112113311464115101051.算法提示:算法提示:杨辉三角形中的数,正

3、是(x+y)的 N 次方幂展开式各项的系数。本题作为程序设计中具有代表性的题目,求解的方法很多,这里仅给出一种。2010 西北工业大学计算机基础教学部,版权所有1/14从杨辉三角形的特点出发,可以总结出:1)第 N 行有 N+1 个值(设起始行为第 0 行)2)对于第 N 行的第 J 个值:(N=2)当 J=1 或 J=N+1 时:其值为 1J!=1 且 J!=N+1 时:其值为第 N-1 行的第 J-1 个值与第 N-1 行第 J 个值之和本程序应是根据以上递归的数学表达式编制的。5.该存多少钱假设银行一年整存零取的月息为 0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出10

4、00 元,到第五年时刚好取完,请算出他存钱时应存入多少。算法提示:算法提示:分析存钱和取钱的过程,可以采用倒推的方法。若第五年年底连本带息要取 1000 元,则要先求出第五年年初银行存款的钱数:第五年初存款=1000/(1+12*0.0063)依次类推可以求出第四年、第三年.的年初银行存款的钱数:第四年年初存款=(第五年年初存款+1000)/(1+12*0.0063)第三年年初存款=(第四年年初存款+1000)/(1+12*0.0063)第二年年初存款=(第三年年初存款+1000)/(1+12*0.0063)第一年年初存款=(第二年年初存款+1000)/(1+12*0.0063)通过以上过程就

5、可以很容易地求出第一年年初要存入多少钱。6.捕鱼和分鱼A、B、C、D、E 五个人在某天夜里合伙去捕鱼,到第二天凌晨时都疲惫不堪,于是各自找地方睡觉。日上三杆,A 第一个醒来,他将鱼分为五份,把多余的一条鱼扔掉,拿走自己的一份。B 第二个醒来,也将鱼分为五份,把多余的一条鱼扔掉,保持走自己的一份。C、D、E 依次醒来,也按同样的方法拿走鱼。问他们合伙至少捕了多少条鱼?算法提示:算法提示:根据题意,总计将所有的鱼进行了五次平均分配,每次分配时的策略是相同的,即扔掉一条鱼后剩下的鱼正好分成五份,然后拿走自己的一份,余下其它的四份。假定鱼的总数为 X,则 X 可以按照题目的要求进行五次分配:X-1 后

6、可被 5 整除,余下的鱼为 4*(X-1)、5。若 X 满足上述要求,则X 就是题目的解。7.平分七筐鱼甲、乙、丙三位鱼夫出海打鱼,他们随船带了 21 只箩筐。当晚返航时,他们发现有七筐装满了鱼,还有七筐装了半筐鱼,另外七筐则是空的,由于他们没有秤,只好通过目测认为七个满筐鱼的重量是相等的,7 个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份?算法提示:算法提示:根据题意可以知道:每个人应分得七个箩筐,其中有3.5 筐鱼。采用一个 3*3 的数组 a 来表示三个人分到的东西。其中每个人对应数组a 的一行,数组的第0 列放分到的鱼的整筐数,数组的第1 列放分到的2010 西

7、北工业大学计算机基础教学部,版权所有2/14半筐数,数组的第 2 列放分到的空筐数。由题目可以推出:。数组的每行或每列的元素之和都为7;。对数组的行来说,满筐数加半筐数=3.5;。每个人所得的满筐数不能超过3 筐;。每个人都必须至少有1 个半筐,且半筐数一定为奇数对于找到的某种分鱼方案,三个人谁拿哪一份都是相同的,为了避免出现重复的分配方案,可以规定:第二个人的满筐数等于第一个人的满筐数;第二个人的半筐数大于等于第一个人的半筐数。8.有限 5 位数个位数为 6 且能被 3 整除的五位数共有多少?算法提示:算法提示:根据题意可知,满足条件的五位数的选择范围是10006、10016。99996。可

8、设基础数 i=1000,通过计算 i*10+6 即可得到欲选的数(i 的变化范围是 1000999),再判断该数能否被3 整除。9.8 除不尽的数一个自然数被 8 除余 1,所得的商被 8 除也余 1,再将第二次的商被 8 除后余 7,最后得到一个商为 a。又知这个自然数被 17 除余 4,所得的商被 17 除余 15,最后得到一个商是 a 的 2 倍。求这个自然数。算法提示:算法提示:根据题意,可设最后的商为i(i 从 0 开始取值),用逆推法可以列出关系式:(i*8+7)*8)+1)*8+1=(2*i*17)+15)*18+4再用试探法求出商 i 的值。10.一个奇异的三位数一个自然数的七

9、进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。算法提示:算法提示:根据题意可知,七进制和九进制表示的这全自然数的每一位一定小于7,可设其七进制数形式为kji(i、j、k 的取值分别为 16),然后设其九进制表示形式为ijk。11.4 位反序数设 N 是一个四位数,它的9 倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234 的反序数是 4321。算法提示:算法提示:可设整数 N 的千、百、十、个位为 i、j、k、l,其取值均为 09,则满足关系式:(i*103+j*102+10*k+l)*9=(l*103+

10、k*102+10*j+i)的 i、j、k、l 即构成 N。12.求车速一辆以固定速度行驶的汽车,司机在上午10 点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多2010 西北工业大学计算机基础教学部,版权所有3/14少?新的对称数是多少?算法提示:算法提示:根据题意,设所求对称数为i,其初值为95589,对其依次递增取值,将i 值的每一位分解后与其对称位置上的数进行比较,若每个对称位置上的数皆相等,则可判定i 即为所求的对称数。13.阿姆斯特朗数如果一个正整数等于其各个数字的立方和,则称该数为阿

11、姆斯特朗数(亦称为自恋性数)。如 407=43+03+73 就是一个阿姆斯特朗数。试编程求1000 以内的所有阿姆斯特朗数。算法提示:算法提示:可采用穷举法,依次取 1000 以内的各数(设为 i),将 i 的各位数字分解后,据阿姆斯特朗数的性质进行计算和判断。14.完全数如果一个数恰好等于它的因子之和,则称该数为“完全数”。算法提示:算法提示:根据完全数的定义,先计算所选取的整数 a(a 的取值 11000)的因子,将各因子累加于 m,若 m 等于a,则可确认 a 为完全数。15.亲密数如果整数 A 的全部因子(包括 1,不包括 A 本身)之和等于 B;且整数 B 的全部因子(包括 1,不包

12、括 B本身)之和等于 A,则将整数 A 和 B 称为亲密数。求 3000 以内的全部亲密数。算法提示:算法提示:按照亲密数定义,要判断数 a 是否有亲密数,只要计算出 a 的全部因子的累加和为 b,再计算 b 的全部因子的累加和为 n,若 n 等于 a 则可判定 a 和 b 是亲密数。计算数 a 的各因子的算法:用 a 依次对 i(i=1a/2)进行模运算,若模运算结果等于 0,则 i 为 a 的一个因子;否则 i 就不是 a 的因子。16.自守数自守数是指一个数的平方的尾数等于该数自身的自然数。例如:252=625762=577693762=87909376请求出 200000 以内的自守数

13、算法提示:算法提示:若采用“求出一个数的平方后再截取最后相应位数”的方法显然是不可取的,因为计算机无法表示过大的整数。分析手工方式下整数平方(乘法)的计算过程,以 376 为例:376被乘数X376乘数-2256第一个部分积=被乘数*乘数的倒数第一位2632第二个部分积=被乘数*乘数的倒数第二位2010 西北工业大学计算机基础教学部,版权所有4/141128第三个部分积=被乘数*乘数的倒数第三位-141376积本问题所关心的是积的最后三位。分析产生积的后三位的过程,可以看出,在每一次的部分积中,并不是它的每一位都会对积的后三位产生影响。总结规律可以得到:在三位数乘法中,对积的后三位产生影响的部

14、分积分别为:第一个部分积中:被乘数最后三位*乘数的倒数第一位第二个部分积中:被乘数最后二位*乘数的倒数第二位第三个部分积中:被乘数最后一位*乘数的倒数第三位将以上的部分积的后三位求和后截取后三位就是三位数乘积的后三位。这样的规律可以推广到同样问题的不同位数乘积。按照手工计算的过程可以设计算法编写程序。17.回文数打印所有不超过 n(取 n256)的其平方具有对称性质的数(也称回文数)。算法提示:算法提示:对于要判断的数 n,计算出其平方后(存于 a),将 a 的每一位进行分解,再按a 的从低到高的顺序将其恢复成一个数 k(如 n=13,则 a=169 且 k=961),若 a 等于 k 则可判

15、定 n 为回亠数。18.求具有 abcd=(ab+cd)2 性质的四位数3025 这个数具有一种独特的性质:将它平分为二段,即30 和 25,使之相加后求平方,即(30+25)2,恰好等于 3025 本身。请求出具有这样性质的全部四位数。算法提示:算法提示:具有这种性质的四位数没有分布规律,可以采用穷举法,对所有四位数进行判断,从而筛选出符合这种性质的四位数。具体算法实现,可任取一个四位数,将其截为两部分,前两位为 a,后两位为 b,然后套用公式计算并判断。19.百钱百鸡问题中国古代数学家张丘建在他的算经中提出了著名的“百钱买百鸡问题”:鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百

16、鸡,问翁、母、雏各几何?算法提示:算法提示:设鸡翁、鸡母、鸡雏的个数分别为 x,y,z,题意给定共 100 钱要买百鸡,若全买公鸡最多买 20 只,显然 x 的值在 020 之间;同理,y 的取值范围在 033 之间,可得到下面的不定方程:5x+3y+z/3=100 x+y+z=100所以此问题可归结为求这个不定方程的整数解。由程序设计实现不定方程的求解与手工计算不同。在分析确定方程中未知数变化范围的前提下,可通过对未知数可变范围的穷举,验证方程在什么情况下成立,从而得到相应的解。20.换分币2010 西北工业大学计算机基础教学部,版权所有5/14用一元人民币兑换成 1 分、2 分和 5 分硬

17、币,共有多少种不同的兑换方法。算法提示:算法提示:根据题意设 i,j,k 分别为兑换的 1 分、2 分、5 分硬币所具有的钱数(分),则 i,j,k 的值应满足:i+j+k=10021.年龄几何张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是 880,求以他们的年龄为前 4 项的等差数列的前 20 项。算法提示:算法提示:设数列的首项为 a,则前 4 项之和为4*n+6*a,前 4 项之积为n*(n+a)*(n+a+a)*(n+a+a+a)。同时1=a=4,1=n=6。可采用穷举法求出此数列。22.谁是窃贼公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还

18、知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:甲说:“乙没有偷,是丁偷的。”乙说:“我没有偷,是丙便的。”丙说:“甲没有偷,是乙偷的。”丁说:“我没有偷。”请根据这四人的答话判断谁是盗窃者。算法提示:算法提示:假设 A、B、C、D 分别代表四个人,变量的值为1 代表该人是窃贱。由题目已知:四人中仅有一名是窃贱,且这四个人中的每个人要么说真话,要么说假话,而由于甲、乙、丙三人都说了两句话:“X 没偷,X 偷了”,故不论该人是否说谎,他提到的两人中必有一人是小偷。故在列条件表达式时,可以不关心谁说谎,谁说实话。这样,可以列出下列条件表达式:甲说:”乙没有偷,是丁偷的。”B+

19、D=1乙说:“我没有偷,是丙偷有。”B+C=1丙说:“甲没有偷,是乙偷的。”A+B=1丁说:“我没有偷。”A+B+C+D=1其中丁只说了一句话,无法判定其真假,表达式反映了四人中仅有一名是窃贱的条件。23.哪个大夫哪天值班医院有 A、B、C、D、E、F、G 七位大夫,在一星期内(星期一至星期天)每人要轮流值班一天。现在已知:A 大夫比 C 大夫晚一天值班;D 大夫比 E 大夫晚二天值班;B 大夫比 G 大夫早三天值班;F 大夫的值班日在 B 和 C 大夫的中间,且是星期四;请确定每天究竟是哪位大夫值班?算法提示:算法提示:2010 西北工业大学计算机基础教学部,版权所有6/14由题目可推出如下

20、已知条件:*F 是星期四值班;*B 值班的日期在星期一至星期三,且三天后是G 值班;*C 值班的日期在星期五至星期六,且一天后是A 值班;*E 两天后是 D 值班;E 值班的日期只能在星期一至星期三;在编程时用数组元素的下标1 到 7 表示星期一到星期天,用数组元素的值分别表示AF 七位大夫。24.谁家孩子跑最慢张王李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第 2 得 8 分,依此类推。比赛结果各家的总分相同,且这些孩子没有同时到达终点的,也没有一家的两个或三个孩子获得相连的名次。已知获第一名的是李家的孩子,获得第二的是王家的孩子。问获得最后一名

21、的是谁家的孩子?算法提示:算法提示:按题目的条件,共有 1+2+3+.+9=45 分,每家的孩子的得分应为 15 分。根据题意可知:获第一名的是李家的孩子,获第二名的是王家的孩子,则可推出:获第三名的一定是张家的孩子。由“这些孩子没有同时到达终点的”可知:名次不能并列,由“没有一家的两个或三个孩子获得相连的名次”可知:第四名不能是张家的孩子。25.拉丁方构造 NXN 阶的拉丁方阵(2=N=9),使方阵中的每一行和每一列中数字1 到 N 只出现一次。如N=4时:1234234134124123算法提示:算法提示:构造拉丁方阵的方法很多,这里给出最简单的一种方法。观察给出的例子,可以发现:若将每

22、一行中第一列的数字和最后一列的数字连起来构成一个环,则该环正好是由1 到 N 顺序构成;对于第i 行,这个环的开始数字为 i。按照 此规律可以很容易的写出程序。下面给出构造6 阶拉丁方阵的程序。26.19 分成 1:2:3 的三个 3 位数将 1 到 9 这九个数字分成三个 3 位数,分求第一个3 位数,正好是第二个3 位数的二倍,是第三个3位数的三倍。问应当怎样分法。算法提示:算法提示:问题中的三个数之间是有数学关系的,实际上只要确定第一个三位数就可以解决问题。试探第一个三位数之后,计算出另外两个数,将其分别分解成三位数字,进行判断后确定所试探的数是否就是答案。需要提醒的是:试探的初值可以是

23、123,最大值是 333。因为不可能超出该范围。27.19 组成三个 3 位的平方数2010 西北工业大学计算机基础教学部,版权所有7/14将 1、2、3、4、5、6、7、8、9 九个数字分成三组,每个数字只能用一次,即每组三个数不允许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。算法提示:算法提示:首先求出三位数中不包含0 且是某个整数平方的三位数,这样的三位数是不多的。然后将满足条件的三位数进行组合,使得所选出的3 个三位数的 9 个数字没有重复。程序中可以将寻找足条件的三位数的过程和对该三位数进行数字分解的过程结合起来。28.由 8 个整数形成奇特的立方体

24、任意给出 8 个整数,将这8 个整数分别放在一个立方体的八个顶点上,要求每个面上的四个数之和相等。算法提示:算法提示:简化问题:将8 个顶点对应数组中的8 个元素,将“每个面上的四个数之和皆相等”转换为数组无素之间和的相等关系。这里的关键在于正确地将立方体的8 个顶点与数组的 8 个元素对应。可以利用简单的穷举方法建立8 个数的全部排列。29.减式还原编写程序求解下式中各字母所代表的数字,不同的字母代表不同的数字。PEAR-ARA-PEA算法提示:算法提示:类似的问题从计算机算法的角度来说是比较简单的,可以采用最常见的穷举方法解决。程序中采用循环穷举每个字母所可能代表的数字,然后将字母代表的数

25、字转换为相应的整数,代入算式后验证算式是否成立即可解决问题。30.乘式还原A 代表数字 0 到 9 中的前五个数字,Z 代表后五个数字,请还原下列乘式。A Z AA A Z-A A A AA A Z ZZ A A-Z A Z A A算法提示:算法提示:问题本身并不复杂,可以对乘式中的每一位使用穷举法,最终可以得到结果。本题的关键在于怎样有效的判断每个部分积的每一位是否满足题意,这一问题处理不好,编写的程序会很长。程序实现中采用了一个判断函数,通过传入函数的标志字符串对所有的数进行统一的判断处理。2010 西北工业大学计算机基础教学部,版权所有8/1431.除式还原给定下列除式,其中包含5 个

26、7,其它打的是任意数字,请加以还原。7-商-除数-|-被除数7 7-7 7-算法提示:算法提示:首先分析题目,由除式本身尽可能多地推出已知条件。由除式本身书已知:1、被除数的范围是 10000 到 99999,除数的范围是 10 到 99,且可以整除;2、商为 100 到 999 之间,且十位数字为 7;3、商的第一位与除数的积为三位数,且后两位为77;4、被除数的第三位一定为4;5、7 乘以除数的积为一个三位数,且第二位为7;6、商的最后一位不能为0,且与除数的积为一个二位数。由已知条件就可以采用穷举的方法找出结果。32.九位累进可除数求九位累进可除数。所谓九位累进可除数就是这样一个数:这个

27、数用到1 到 9 这九个数字组成,每个数字刚好只出现一次。这九个位数的前两位能被2 整除,前三位能被3 整除.前 N 位能被 N 整除,整个九位数能被 9 整除。算法提示:算法提示:问题本身可以简化为一个穷举问题:只要穷举每位数字的各种可能取值,按照题目的要求对穷举的结果进行判断就一定可以得到正确的结果。问题中给出了“累进可除”这一条件,就使得我们可以在穷举法中加入条件判断。在穷举的过程中,当确定部分位的值后,马上就判断产生的该部分是否符合“累进可除”条件,若符合,则继续穷举下一位数字;否则刚刚产生的那一位数字就是错误的。这样将条件判断引入到穷举法之中,可以尽可能早的发现矛盾,尽早地放弃不必要

28、穷举的值,从而提高程序的执行效率。为了达到早期发现矛盾的目的,不能采用多重循环的方法实行穷举,那样编出的程序质量较差。程序中使用的算法不再是穷举法,而是回朔法。2010 西北工业大学计算机基础教学部,版权所有9/1433.魔术师的猜牌术(1)魔术师利用一副牌中的 13 张黑桃,预先将它们排好后迭在一起,牌面朝下。对观众说:我不看牌,只数数就可以猜到每张牌是什么,我大声数数,你们听,不信?你们就看。魔术师将最上面的那张牌数为1,把它翻过来正好是黑桃A,将黑桃A 放在桌子上,然后按顺序从上到下数手上的余牌,第二次数1、2,将第一张牌放在这迭牌的下面,将第二张牌翻过来,正好是黑桃2,也将它放在桌子上

29、,第三次数1、2、3,将前面两张依次放在这迭牌的下面,再翻第三张牌正好是黑桃3。这样依次进行将 13 张牌全翻出来,准确无误。问魔术师手中的牌原始顺序是怎样安排的?算法提示:算法提示:题目已经将魔术师出牌的过程描述清楚,我们可以利用倒推的方法,很容易地推出原来牌的顺序。人工倒推的方法是:在桌子上放13 空盒子排成一圈,从1 开始顺序编号,将黑桃A 放入 1 号盒子中,从下一个空盒子开始对空的盒子计数,当数到第二个空盒子时,将黑桃2 放入空盒子中,然后再从下一个空盒子开始对空盒子计数,顺序放入3、4、5.,直到放入全部3 张牌。注意在计数时要跳过非空的盒子,只对空盒子计数。最后牌在盒子中的顺序,

30、就是魔术师手中原来牌的顺序。这种人工的方法是行之有效的,计算机可以模拟求解。34.魔术师的猜牌术(2)魔术师再次表演,他将红桃和黑桃全部迭在一起,牌面朝下放在手中,对观众说:最上面一张是黑桃A,翻开后放在桌上。以后,从上至下每数两张全依次放在最底下,第三张给观众看,便是黑桃 2,放在桌上后再数两张依次放在最底下,第三张给观众看,是黑桃 3。如此下去,观众看到放在桌子上牌的顺序是:黑桃A2345678910JQK红桃A2345678910JQK问魔术师手中牌的原始顺序是什么?算法提示:算法提示:本题可在上题的基础上进行编程,不同的在于计数的方法和牌的张数,这些并不影响我们求解题目的思路,仍可按照

31、倒推的方法,得到原来魔术师手中的牌的顺序。35.约瑟夫问题这是 17 世纪的法国数学家加斯帕在数目的游戏问题中讲的一个故事:15 个教徒和 15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30 个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余 15 个人为止。问怎样排法,才能使每次投入大海的都是非教徒。算法提示:算法提示:约瑟夫问题并不难,但求解的方法很多;题目的变化形式也很多。这里给出一种实现方法。题目中 30 个人围成一圈,因而启发我们用一个循环的链来表示。可以使用结构数组来构成一个循环链。结构中有两个成

32、员,其一为指向下一个人的指针,以构成环形的链;其二为该 人是否被扔下海的标记,为 1 表示还在船上。从第一个人开始对还未扔下海的人进行计数,每数到9 时,将结构中的标记改为0,表示该人已被扔下海了。这样循环计数直到有15 个人被扔下海为止。36.邮票组合2010 西北工业大学计算机基础教学部,版权所有10/14某人有四张 3 分的邮票和三张 5 分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?算法提示:算法提示:将问题进行数学分析,不同张数和面值的邮票组成的邮资可用下列公式计算:S=3*i+5*j其中 i 为 3 分邮柰的张数,j 为 5 分的张数按题目的要求,3 分的邮票可以取

33、 0、1、2、3、4 张,5 分的邮票可以取 0、1、2、3 张。采用穷举方法进行组合,可以求出这些不同面值不同张数的邮标组合后的邮资。37.和数能表示 123 的 5 个正整数已知五个互不相同的正整数之和为 23,且从这五个数中挑选若干个加起来可以表示从1 到 23 之内的全部自然数。问这五个数是什么?算法提示:算法提示:从计算机程序设计的角度来说,可以用穷举法分解 23,然后判断所分解的五个数是否可以表示 1 到23 之间的全部整数。38.可称 140 磅的 4 块砝码法国数学家梅齐亚克在他著名的数字组合游戏(1962)中提出了一个问题:一位商人有一个重40 磅的砝码,一天不小心将砝码摔成

34、了四块。后来商人称得每块的重量都是整磅数,而且发现这四块碎片可以在天平上称 1 至 40 磅之间的任意重量。请问这四块碎片各重多少?算法提示:算法提示:本题是上一题的发展。题目中给出的条件是“在天平上”,这意味着:同一砝码既可以放在天平的左侧,也可以放在天平的右侧。若规定重物只能放在天平的左侧,则当天平平衡时有:重物重量+左侧砝码重量总和=右侧砝码重量总和由此可得:重物重量=右侧砝码重量总和-左侧砝码重量总和编程时只要根据以上公式,使“右侧砝码重量总和-左侧砝码重量总和”可以表示 1 到 40 之间的全部重量即可。编程中要注意的是:怎样采用一种简单的方法来表示一个砝码是在天平的左侧还是在天平的

35、右侧,或是根本没有使用。39.10 个小孩分糖果十个小孩围成一圈分糖果,老师分给第一个小孩 10 块,第二个小孩 2 块,第三个小孩 8 块,第四个小孩 22 块,第五个小孩 16 块,第六个小孩 4 块,第七个小孩 10 块,第八个小孩 6 块,第九个小孩 14 块,第十个小孩 20 块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?算法提示:算法提示:题目描述的分糖过程是一个机械的重复过程,编程算法完全可以按照描述的过程进行模拟。40.求 的近似值请利用“正多边形逼近”的方法求出 的近似值2010

36、 西北工业大学计算机基础教学部,版权所有11/14算法提示:算法提示:利用“正多边形逼近”的方法求出 值在很早以前就存在,我们的先人祖冲之就是用这种方法在世界上第一个得到精确度达小数点后第6 位的 值的。利用圆内接正六边形边长等于半径的特点将边数翻番,作出正十二边形,求出边长,重复这一过程,就可获得所需精度的 的近似值。假设单位圆内接多边形的边长为2b,边数为 i,则边数加倍后新的正多边形的边长为:周长为:y=2*i*xi:为加倍前的正多边形的边数41.奇数平方的一个有趣性质编程验证“大于 1000 的奇数其平方与 1 的差是 8 的倍数”。算法提示:算法提示:本题是一个很容易证明的数学定理,

37、我们可以编写程序验证它。题目中给出的处理过程很清楚,算法不需要特殊设计。可以按照题目的叙述直接进行验证(程序中仅验证到 3000)。42.角谷猜想日本一位中学生发现一个奇妙的“定理”,请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以 2,若为奇数则乘 3 加 1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。算法提示:算法提示:本题是一个沿未获得一般证明的猜想,但屡试不爽,可以用程序验证。题目中给出的处理过程很清楚,算法不需特殊设计,可按照题目的叙述直接进行证。43.卡布列克常数验证卡布列克运算。任意一个四位数,

38、只要它们各个位上的数字是不全相同的,就有这样的规律:1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有 0,则得到的数不足四位);3)求两个数的差,得到一个新的四位数(高位零保留)。重复以上过程,最后得到的结果是6174,这个数被称为卡布列克数。算法提示:算法提示:题目中给出的处理过程很清楚,算法不需要特殊设计,可按照题目的叙述直接进行验证。44.常胜将军现有 21 根火柴,两人轮流取,每人每次可以取走 1 至 4 根,不可多取,也不能不取,谁取最后一楰火柴谁输。请编写一个

39、程序进行人机对弈,要求人先取,计算机后取;计算机一方为“常胜将军”。算法提示:算法提示:在计算机后走的情况下,要想使计算机成为“常胜将军”,必须找出取 关键。根据本题的要求枷以总结出,后走一方取子的数量与对方刚才一步取子的数量之和等于,就可以保证最后一个子是留给先取子的2010 西北工业大学计算机基础教学部,版权所有12/14那个人的。据此分析进行算法设计就是很简单的工作,编程实现也十分容易。45.抢 30这是中国民间的一个游戏。两人从1 开始轮流报数,每人每次可报一个数或两个连续的数,谁先报到30,谁就为胜方。算法提示:算法提示:本题与上题类似,算法也类似,所不同的是,本谁先走第一步是可选的

40、。若计算机走第一步,那么计算机一定是赢家。若人先走一步,那么计算机只好等待人犯错误,如果人先走第一步且不犯错误,那么人就会取胜;否则计算机会抓住人的一次错误使自己成为胜利者。46.人机猜数游戏由计算机“想”一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。例如:计算机“想”了一个“1234”请人猜,可能的提示如下:人猜的整数计算机判断有几个数字正确有几个位置正确112221334421331230412340124342123444游

41、戏结束请编程实现该游戏。游戏结束时,显示人猜一个数用了几次。算法提示:算法提示:问题本身清楚明了。判断相同位置上的数字是否相同不需要特殊的算法。只要截取相同位置上的数字进行比较即可。但在判断几位数字正确时,则应当注意:计算机所想的是“1123”,而人所猜的是“1576”,则正确的数字只有 1 位。程序中截取计算机所想的数的每位数字与人所猜的数字按位比较。若有两位数字相同,则要记信所猜中数字的位置,使该位数字只能与一位对应的数字“相同”。当截取下一位数字进行比较时,就不应再与上述位置上的数字进行比较,以避免所猜的数中的一位与对应数中多位数字“相同”的错误情况。47.选美比赛在选美大奖赛的半决胜赛

42、现场,有一批选手参加比赛,比赛的规则是最后得分越高,名次越低。当半决决赛结束时,要在现场按照选手的出场顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。例如:选手序号:1,2,3,4,5,6,7选手得分:5,3,4,7,3,5,6则输出名次为:3,1,2,5,1,3,42010 西北工业大学计算机基础教学部,版权所有13/14请编程帮助大奖赛组委会完成半决赛的评分和排名工作。算法提示:算法提示:问题用程序设计语言加以表达的话,即为:将数组 A 中的整数从小到大进行连续编号,要求不改变数组中元素的顺序,且相同的整数要具有相同的编号。普通的排序方

43、法均要改变数组元素原来的顺序,显然不能满足要求。为此,引入一个专门存放名次的数组,再采用通常的算法:在尚未排出名次的元素中找出最小值,并对具有相同值的元素进行处理,重复这一过程,直到全部元素排好为止。48.八皇后问题在一个 88 国际象棋盘上,有 8 个皇后,每个皇后占一格;要求皇后间不会出现相互“攻击”的现象,即不能有两个皇后处在同一行、同一列或同一对角线上。问共有多少种不同的方法。算法提示:算法提示:这是一个古老的具有代表性的问题,用计算机求解时的算法也很多,这里仅介绍一种。采用一维数组来进行处理。数组的下标 i 表示棋盘上的第 i 列,a(i)的值表示皇后在第 i 列所放的位置。如:a(1)=5,表示在棋盘的第一例的第五行放一个皇后。程序中首先假定 a(1)=1,表示第一个皇后放在棋盘的第一列的第一行的位置上,然后试探第二列中皇后可能的位置,找到合适的位置后,再处理后续的各列,这样通过各列的反复试探,可以最终找出皇后的全部摆放方法。2010 西北工业大学计算机基础教学部,版权所有14/14

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 管理文献 > 企业管理

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知得利文库网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号-8 |  经营许可证:黑B2-20190332号 |   黑公网安备:91230400333293403D

© 2020-2023 www.deliwenku.com 得利文库. All Rights Reserved 黑龙江转换宝科技有限公司 

黑龙江省互联网违法和不良信息举报
举报电话:0468-3380021 邮箱:hgswwxb@163.com