文档库 最新最全的文档下载
当前位置:文档库 › 本题库由以下各位先生共同完成

本题库由以下各位先生共同完成

双智开发题库
墨 伯
前言
刀子越磨越快,脑子越用越灵。用脑多的人不易老,不易中风,都是常人所知的。学会做这些题目,本身就是愉快而富有挑战性的,也是健脑良方。
这些题目主要来自小学、初中、高中、大学中的一些数学竞赛与信息学竞赛练习题,也有些是作者自编的题目,涉及到的内容主要有初等数论、排列组合、几何学、图形学、函数、方程、数列、DLL接口、数学与计算机的一些经典算法等,由于定位上的原因,还是舍弃了很多优秀而经典的题目,所于这个题库只不过是入门级的训练题材。要成为顶尖的数学或电脑高手,那只好上网去找更优秀的资源了。
众所周知,数学是电脑的灵魂,电脑是数学的助手和工具。学习程序不得不与数学结缘。尤其是算法,更是从数学角度去建模,从数据结构上去描述,再用程序代码来实现算法。
数据结构与算法将成为信息技术学科的文化核心,语言和程序代码仅仅是它们的一种表现形式。而且,往往当数学的算法无能为力时,设计计算机的算法才凸显其神通广大,因为计算机运行高速,准确无误,空间又大。所以,学好数学、练好思维更重要。当然要成为高级人才,学好高等数学、外语、底层接口[如汇编]都是必不可少的。
这儿的大部分题目来自数学竞赛,大多数题目也都是数学高才生下能攻克的,但对我们会编程的人来说是算有福的,用若干个循环语句和选择语句就解决了。然而,鱼和熊掌要想兼得,就请你在做每一道题目时,考虑同时用数学和程序的双重解法。
这里还有不少题目没有更好的算法,无论是数学还是电脑,总有令人费解的许多问题,这有待于各位教师、专家、乃至学生将基本的或优秀的算法和代码上传到本站。我们将保留您的知识产权。上传文件名请用"双智开发题库[23-48]参考解法_某某单位某某人.doc"这样的格式。以便统一审核开放。
这些题目将是今后教师技能比武,解题竞赛的原本,也是本县中小学生信息学竞赛活动的范围。所以希望数学教师,信息学教师系统地进行研究。
通过这些题目的练习,我们将期望更多的学生成为双尖子生,将来成为我们的数学界、IT界的精英! --------------- 墨伯 2006.11.14

本题库由以下各位先生共同完成:
选题拟题、提供算法:
墨伯(安吉县教研室),随风(安吉县实验初中),戴健(安吉县外国语学校),古风(安吉县孝丰镇中),风隐(安吉县孝丰中心),安外小范。尤其是以下六位老师提供了较为详尽的VBS解题方案:戴楹(丰食

溪中心),雷宾(南北湖中心),金克丽(实验小学),郑向阳(递铺二小),周志强(皈山中心),薛斌(孝丰中心)
排印编排:康健(安吉县安城中心)
PART-1------------由安外小范整理提供
小学生VBS计算机竞赛题库[基础篇]
1、用MsgBox函数和换行符输出:
你的姓名、爱好、家庭成员
你的学校及家庭地址。
2、输入长方体的长x,宽y,高z,输出长方体的表面积(六个面的面积之和)?
3、输入长方体的长a,宽b,高c,输出长方体的体积v?
4、设:r=10.4,pi=3.1415,求圆的面积S=? 圆的周长P=? 球面积QA=? 球体积QV=?
5、编程计算1.5+2.5+3.5+4.5+......+100.5=?
6、编程计算1+2+3+......+2006=?
7、编程计算100+99+98+97+......+1=的和?
8、编程计算2+4+6+8+......+100的和?
9、编程计算1+3+5+7+9+......+99的和?
10、编程计算1+2-3+4-5+6-7+......+100的值?
11、编程计算1*2*3*4*......*10的积?
12、编程计算1/1+1/2+1/3+1/4+......+1/20的和?
13、编程计算1/1+1/2+2/3+3/5+5/8+8/13的和?
14、编程输出 + + + + + + + ......前20项之和?
15、编程求和 2+2(1/2)+3(1/3)+4(1/4)+5(1/5)+......2005(1/2005)+2006(1/2006)?
16、输入x,y两个数,输出这两个数中的最大数m?
17、设:a=7.34,b=9.74。求长方形的面积S和周长C
18、输入语文、数学成绩,输出平均分和总分
19、输入两个数x和y,输出x÷y的整数部分I和小数部分F。(如5÷2,则I=2,F=0.5)
20、输入两个数i,j,输出它们的最小公倍数M和最大公约数。
21、北京奥运会于2008年8月8日开幕,计算今天距北京奥运会开幕还有多少个星期?
22、要求随便输入三个数字,这三个数排从小到大排列
23、输入三个数,输出三个数中最大的一个。
24、输入一字符串,输出它的倒序字符串。(如输入"ABCD1234",输出为"4321DCBA")
25、编程输出:同时满足下面两个条件的四位数n:1)n是7的倍数;2)n中含有"888"。
26、问题:判断一个数能否同时被36和48整除
27、当输入以下英语单词时能输出相应的中文单词:
英文颜色单词 中文颜色名称 Red 红色 Blue 蓝色 Yellow 黄色 Green 绿色 28、闰年的判断,请你判断2060年是不是闰年
29、成绩分类
王小二的成绩如下
语文 数学 科学 英语 78 92 76 67 请你按照优秀(90或以上)良好(80或以上)合格(60或以上)不合格(60以下)来评价一下他的各科成绩。
30、QQ密码登陆,输入QQ号码12345678,密码987654321,密码正确登陆"欢迎进入QQ!",错误提示"密码错误,请重新输入!"
31、过年了,三年级的小伟同学得到了1024块压岁钱,他想把钱存入银行,银行的年利率为0.2%,请你算一下他到六年级毕业时能拿到多少钱?
32、 已知一球从100米高度自由落下,落下后

反复弹起,每次弹起的高度都是上次高度的一半。求此球第10次落地后反弹起的高度和球所经过的路程。
33、输入一个数,判断它是奇数还是偶数。
34、输入一个数,判断能否同时被3和7整除。
35、输入三个小数,输出三个小数中的最大的小数
36、输入一个数,判断它是否是质数
37、计算3到300中的质数有几个
38、求两个数的最大公约数
39、求两个数的最小公倍数
40、输入一个数,并把它分解质因数
41、输出九九乘法口诀表
42、输出一个三角矩阵
43、输出一个拐角矩阵
44、输入一个年份,判断它是否是闰年
45、输出当前的时间,格式如:2006年10月11日8时13分50秒
46、算式9( )3=?,输入不同的四则运算符,并计算出相应的结果
47、1分的硬币有20个,2分的硬币有10个,5分的硬币有4个。有几种排列方法能够使得总和为20分。
48、一本1000页的书,黄强第一天看了10页。以后每天比前一天多看3页,编程求出黄强最后一天看了多少页。
49、求出200以内的素数
50、编程找出四位正整数ABCD中满足下述关系的数:(AB+CD)*(AB+CD)=ABCD
51、输出1-100之间的奇数。
52、编程计算从2001年1月20日后的10年是何时?
53、编程计算你离50岁那天,还有多少天?

54、输出今年的年份与月份!即形式如: 2006年10月
55、输出现在的正确年份、月份、日期及时间!即形式如: 2006-10-19 23:52:09
56、输入一个数,求这个数和它的倒数之和
57、输入三个数,求出最大的数的所有约数
58、1分的硬币有50个,2分的硬币有25个,5分的硬币有10个,10分的硬币有5个,将硬币凑成50分,有哪几种方法?再求出整个程序的运行时间?
59、随机输出两个数,求这两个数的最大公约数以及最小公倍数。
60、输入一个数,判断是否质数,如果不是,则将它分解质因数。
61、输入10个数,输出最大的数。
62、输入3个数,将最大的数分解质因数。
63、随即输出一道题(算圆周长),输入答案,对正确答案输出"正确",错误答案输出"错误"。
64、我国有13亿人口,按人口年增长0.8%计算,多少年之后我国人口超过56亿?50年后我国人口有多少亿?
65、求出1-100的5的倍数或7的倍数的和。
66、假定小鸡每只5角,公鸡每只2元,母鸡每只3元。现在100元要求买100只鸡,编程列出所有可能的购鸡方案。
67、猴子吃桃子。小猴在一天摘了若干个桃子,当天吃掉一半多一个;第二天接着吃了剩下的桃子的一半多一个;以后每天都吃尚存桃子的一半零一个,到第7天早上要吃的时候发现只剩下一个了,问小猴子那天总共摘下了多少桃子?
68、分别统计1-100中,满足的3倍数、7的倍数的数各为多少个?
6

9、利用随机函数产生的20个50-100范围内的随机数,显示它们的最大值、最小值和平均值。
70、设用1、2、3分的三种硬币组成20分(2角),有多少种方案?
71、用辗转相除法求两自然数m、n的最大公约数和最小公倍数。
72、(1)、产生一个1<=x<5的随机数;(2)、产生一个3<=x<99的随机数
73、求出1~5000以内能被3或者7整除的数的个数
74、把100-200之间不能被3整除的数输出
75、12=3*4,56=7*8,称为顺子算式,在三位数,四位数中还能找到这样的顺子算式吗?
76、在之间插入20个分数,使每两个之差都相等。
77、把7,77,777,7777,77777,777777,7777777, 77777777,777777777分解质因数


说明:整理了很多老师出的题目,自己也加了一些题。^_^
时间仓促,有问题可以联系4890安外小范或者自行更改下。
还在摸索学习中............


PART-2------------由墨伯整理提供
小学生VBS计算机竞赛题库[数学补习篇]
1) 输出从10个字母卡片中抽出其中2个字母的所有抽法。
数学算法:组合公式:[(种)]

2) 输出从10个字母卡片中抽出其中3个字母的所有抽法。
数学算法:组合公式: [(种)]

3) 输出5个字母的全排列
数学算法:全排列公式: [(种)]

4) 输出从5个字母卡片中抽出其中3个字母的排列结果。
数学算法:全排列公式: [(种)]

5) 输出n个字母卡片的全排列结果
数学算法:全排列公式: [n!=1*2*3*......*n]


6) 七位的车牌号不够用,前面两位可用两个英文字母[仅26个大写字母]后,可以多出多少号码?
数学算法:262*105


7) 数字4不能用后,一位到四位共有多少个数?
算法提示:可以当作九进制数计算个数


8) 四位的十六进制数最大是十进制中的什么数?
算法提示:ffff=164-1=65535


9) 输出n个字母卡片中抽取k个后的全部排列结果
数学算法:排列公式:

10) 求出三组互不相同的自然数A,B,C,使之满足
算法提示:化为整式

11) 求出一组互不相同的自然数A,B,C,D,E,使之满足
算法提示:化为整式



12) 求m,n的最大公约数



13) 求m,n的最小公倍数



14) 求0~100之间的所有质数(素数)


15) 求的末四位数
算法提示:采用留尾截头方法


16) 求100!的末尾连续0的个数
算法提示:因数5与2相乘会得0,将短除法的商相加.---MOBO


17) 把十进制中的48化为二进制数
算法提示: 短除法,除于2,倒向记余数.

18) 找出三个自然数,使
算法提示:变成平方差公式.

19) 找出四个自然数,使
算法提示:化成(a+c)x(a-c)=(d+b)x(d-b),设左边=2x3x4x5

20) 求这样的四位数,使,即交换数位后是原数的4倍
算法提示:穷举法(i=1000 to 9999/4)(以

下是VBS示例:)



21) 当n=?时,各位数字之和是5的倍数


22) 判断三个数a,b,c作边,(端点相接)能否构成三角形?
算法提示:三角形任意两边之和大于第三边.

23) 精算=?
算法提示:用数组来储存每一位数.

24) 精算50位数a,b的加法,a+b=?
算法提示:1,用数组来储存每一位数.2,分若干段处理---分治算法

25) 精算100!=?
算法提示:用数组来储存每一位数.


26) 精算10位数a,b的乘法:
算法提示:1,用数组来储存每一位数.2,变成(a1+a2)*(b1+b2)分段计算.

27) 把自然数中的所有数字之和都不大于10的数排列成序列,求所形成数列中的第1000项是什么数?


28) 从1,2,3,......,2007这些数中,求8出现过多少次?


29) 在的格子里,沿着线路走,从左上角开始,每步只能向右、向下方向走,走到右下角,共有多少种走法?

算法提示:1,杨辉三角数,2.回溯法

30) 把100最多可拆成哪些正整数的平方和?



31) 求1000前五个质数。


32) 求的末三位数字
算法提示: 采用留尾截头方法

33) 若恰是5的倍数,求出3个不同的n
算法提示:请关注末位数.

34) 有多少种方法将正整数n拆成k个非负整数之和?
算法提示:有数学公式




35) 有多少种方法将正整数n拆成k个正整数之和?
算法提示: 有数学公式

36) 有多少种方法将正整数n拆成k个互不相等的正整数之和?
算法提示-1:从n中先分出1+2+3+......+k,再分配多余的数。---数学中的算法
算法提示-2:先大致地平均分成n份,慢慢地将1向后挪动。


37) 将表示成5个连续奇数之和
算法提示:先导出5个连续奇数之和的公式


38) 将1000表示成4个正整数的平方
算法提示: 从大数开始试.


39) 将1000表示成9个正整数的立方
算法提示:从大数开始试.


40) 七位数是792的倍数,求三个数字


41) 已知(n为自然数)是100的倍数,求最小的n是多少?
算法提示:只用关注末两位数

42) 求n是何值时,是整数
算法提示:自然数平方和有公式的:nx(n+1)x(2*n+1)/6



43) 求144有哪些约数?


44) 求1000所有的约数。


45) 有哪些约数?

46) 求,其和为667,他们的最小公倍数是他们最大公约数的120倍。



47) 求出最小的正整数,它的是一个整数的平方,它的是一个整数的三次方。


48) 有七位全是1的数,1111111-n是某整数的平方数,求最小的n。
算法提示:n=1111111-x2 用筛选法,n的末位只可能是:0,1,5,6


49) 仅用2,3,4,5,6能否组成平方数,立方数?
算法提示:考虑平方数,立方数的末位数方便些。


50) 一个圆周上写着37个自然数,从1开始,沿着顺时针方向,隔2个删去一个数

,问经过多少次才能删到数字1?最后删除的是几?


51) 数可以拆成哪几个连续自然数的平方和?
算法提示: 先导出几个连续自然数的平方和公式


52) 求出的整数解。
算法提示:(x+y)×(x-y)=k2×k


53) 求出所有这样的三位数,使其被11整除后的商等于被除数中各数字的平方和。


54) 把20!分解为质因数连乘的积。


55) 求使为整数的最大自然数。
算法提示:在分子中找出因数7的个数

56) 用1分、2分、5分三种硬币凑成50分,输出所有的凑法。
算法提示:从大数5开始分,按有序方法进行!

57) 今有16只铅球,其中有一只是空心的,给你一天平秤,设计最少的称法,拣出那只空心球。
算法提示:形成三组考虑.即用三叉树结构。


58) 设n=17*37*73,问能约分的分数有多少?
算法提示:用数学中集合的容斥原理更方便些


59) 用0,1,2,3,4,5,6,7,8,9这九张卡片拼成5位数,首位当然不能放0,奇数,偶数各多少个?
算法提示:先考虑首位,末位


60) 在一个10X10的方格中,任取3X3方格,设3X3方格当中的那个格子为(i,j),求(i.j)移到哪些位置出现的质数最多?
1 11 21 31 41 51 61 71 81 91 2 12 22 32 42 52 62 72 82 92 3 13 23 33 43 53 63 73 83 93 4 14 24 34 44 54 64 74 84 94 5 15 25 35 45 55 65 75 85 95 6 16 26 36 46 56 66 76 86 96 7 17 27 37 47 57 67 77 87 97 8 18 28 38 48 58 68 78 88 98 9 19 29 39 49 59 69 79 89 99 10 20 30 40 50 60 70 80 90 100
61) 把下列无向表转化为二维数组:1表示通,0表示不通.


62) 把下列有向表转化为二维数组: 1表示可进.0表示无线或不能退.



63) 一叠纸牌共n张,先把第一张丢开,把第二张放到底层;然手把第三张丢开,把第四张放到底层,如此下去,直到只剩一张,问这张是原来的第几张?

64) 精算到第十四位小数
算法提示:每位数用数组储存,用剥皮减法

65) 把37拆成若干正整数之和,使这些正整数之积为最大。


66) 求1000所有的约数
求222222的所有质因数


67) 把1000拆成若干自然数之积,使这些自然数之和为最小





68) 求n条直线把一正方形可分割的最多块数(只计基本的小块)
算法提示:1 + nx(n+1)/2






69) 如图,从第一行开始取一数,按相邻的数去找,每行只取一个数,问怎样的路线往下走,可取得各数之和为最大?

算法提示:贪心算法或动态规划

70) 在13572468这数中,插入3个乘号,怎样插入,可使其积最大?


71) 把100分成4个互不相同的自然数之和,有哪些结果?


72) 用转辗相除法,求96与144的最大公约数。


73) 把FF(十六进制)化为二进制数。



74) 10个人依次编号为1,2,3,...... 10围成一圈,从第一号人开始沿一方向数,凡数到3的出队,问最

后出队的那位是几号?


75) 用MsgBox及"*"输出下列图形
①正三角形 ②倒三角形 ③平行四边形 ④菱形 ⑤波浪线


76) 分数 ,=1,2,3,......,1000,哪些分数可约分?


77) 对100个分数进行排序(从小到大),分子依次是1,2,3,......。100。分母各是分子每位数字之和。如等。


78) 求四位近似值:
算法提示:1.递归,2.与方程的正根一样:X2-X-1=0

79) 设,使得六位数能被26整除,求这个六位数。


80) 用二分法求方程=7的近似根(四位小数)


81) A,B,C三只蚂蚁起先在圆周的三等分点上,A,B沿着顺时针,C沿着逆时针同时爬行,A,B.C的速度比为8:6:5,求三只蚂蚁所会合的地点(首次)


82) 找到恰当的互不相同的自然数,使得:


83) 用绘图函数输出:①长方体 ②三棱锥 ③波浪线 ④螺旋线
⑤阶梯线 ⑥球体 ⑦三叶花 ⑧五叶花


84) 假设兔子的寿命都大于2年,在一封闭的养殖场里放入一对兔子,每月每对兔子都能再生一对兔子,问到第12个月,兔子数已繁殖到了多少?


85) 验证哥德巴赫猜想:
①试把2008拆成2个质数之和。
②试把2007拆成3个质数之和。


86) 模拟短除法:
① 求2008!末尾共有多少连续的0。
② 把99化成若干个和的形式。


87) 给出年份n(四位数)是否是闰年的判断方法。


88) 给出2008年元旦是星期几的判断方法。
( )
:年份,:元旦起到某日的天数,:总天数,除以7取余即为改日星期几)


89) 试在立方体的八个顶点上写上1~8个数,使每个正方形面上的四个数字之和相等。


90) 将1~16个数填入的格子中,使每行、每列上的4个数字之和都相等。


91) 验证数字黑洞,按如下法则算到结果是1为止:
①如果n为偶数,取其一半。②如果n为奇数,将其乘3再加1
问对于2008这个数,要经历多少次运算才能使其结果是1

92) 试求形如的六位数所必含的质因数。


93) 求末位数是几?


94) 求末位数是几?


95) 某富翁将6737枚铜币,2811套衣服等分给若干灾民,余数是:铜币余6枚,衣服余2套,问灾民最多是多少人?


96) 有100个分数,使分别为1,2,3,,100。分母是的最大因数,如,,,试选出10个分数,使其和最接近50


97) 若干学生搬一堆书,若每个人搬4本,则剩14本,若没人搬9本,则最后一人只搬8本,求搬书的学生有多少人?


98) 已知,,,求之值。


99) 求繁分数之值(精确到四位小数)
①、 100

②、


100) 形如以及的数通常是质数,分别输出它们的

前10个质数。


101) 试找出八位数12345679的所有质因数。



102) 对于一个自然数,若能找到自然数,。使得,则称为一个OK数,如,找出100~999之间的所有OK数。


103) 计算:1,3,5,7,......,(2n-1)这些奇数的和,平方和,立方和。
算法提示:运用下面公式推导新公式:






104) 白天安吉发往杭州的公交为半小时一班,杭州发往安吉的公交也为半小时一班,公交杭州 安吉的运行时间为1.5个小时,问中午发出的班次在路上会碰到迎面开回的几个班次?
算法提示:采用网格图分析

105) 在国际学生联欢会上,一圆桌前围坐着五个人,其中A是中国人,会英语;B是法国人,会日语;C是英国人,会法语;D是日本人,会汉语;E也是法国人,会西班牙语,怎样坐成一圈,使之彼此之间都能交谈?
算法提示:采用表格\图分析

106) 数学比赛的前五名A、B、C、D、E,在发奖前相互猜名次。
A猜:B是第三名,C是第五名;
B猜:E是第四名,D是第五名;
C猜:A是第一名,E是第四名;
D猜:C是第一名,B是第二名;
E猜:A是第三名,D是第四名;
老师说,每一名次均有人猜对,试求出每人的名次。
算法提示:采用表格\图分析

107) 同学甲把一个有六个数字的数abc.def报给同学乙,结果乙把前后搞错了,写成了def.abc,求这两个数与9相乘后的积最多会相差多少?


108) 有两个数列:A=1,3,5,7,......1999,B=1,4,7,10,......,1999
求:A与B中相同的数有哪些?


109) 一辆40万的汽车,每年折旧0.85,问过多少年后,其价值刚低于10万?


110) 请只用1,2,3三个数字填入的方格中,使每行,每列的和各不相同。


111) 寻找最少节点数与最多节点数,n=20,有数之处皆称节点。如n=5有:

112) 从n个随机数中挑出最大数和最小数。



113) 用黄金分割(0.618)方法,求方程的近似根(小数点后取四位)


114) 判断电子邮件的信箱地址是否合法:
"_daode"符合变量命名格式,""必含符号,"abc.def.xyz"三个英文字母组成的词用""分隔。英文词拼法不必检查。


115) 某一小孩,从10,11,12,......写到100,但觉得数字4,5要写2笔,就不写,在他所写的这些数中,选取20个数,使这20个数的和尽量的小
算法提示:可用贪心算法,即逐一替换成小的数


116) 在圆周上写着1,2,3,......,100,从1开始划,此后每隔5个划一个,已经划去的不再划,求最后划去的那个数是几?


117) 求近似结果(小数点后取4位)



118) 有如下定义的数列:
F(n)=[F(n-1)+F(n-2)]÷2
F(2)=3
F(1)=1
求:

 

 
119) 有10阶台阶,某人一步可跨一个台阶,也可以跨2个台阶,他从脚走到顶共有多少种不同的走法?
算法提示:递归

120) 随机产生100~999之间的正整数,设计高效的排序方法,把他们从小到大进行排序。
算法提示:不同的数记入不同下标的数组里进行累计.

121) 在A管中装有写着数字的弹子,B,C为空管供调用,要使结果在C管中呈现4,3,2,1(从上向下看),输出你的操作过程。

122) 试编写一个乘法练习程序:
① 二位数乘一位数
② 随机出数
③ 用户输入答案后能做判断
④ 如果用户算错,则出示竖式给用户看

123) 用户输入的0~10分别转换成中文大写数字:"壹,贰,叁,......,拾"


124) 对用户输入的任一数字,根据ASC码调出汉字。


125) 寻找100个连续的自然数,按照它们取ASCⅡ码后所得的100个汉字的声母都一样。


126) 设计一种加密算法,把0~9十个数字分割映射到互不相同的四位数字或四位字母上。


127) 设计一种快速分组的算法,要求将班额在45~55的各班学生进行分组,找到各班的起讫下标(假设有100个班,已经过排序,每班已有独立的名称)
算法提示:蛙跳加双向搜索

128) 设计临近点迂回探索算法,将已排序的1000名学生的总分成绩(0~750分)划出前30%,遇到相同分数时向上、向下寻找最近分界线。
算法提示:蛙跳加双向搜索

129) 在100个随机数中,找到,使为最小。


130) 设计排名算法,示意如下:
分数 100, 99,99,99, 98, 97,97,95,......

名次 1 2 3 4 5


131) 小蚂蚁从A出发,沿着棱爬到Z,有哪些线路方案,
规则:走过的点不再去。

132) 某些数很奇特,有特殊的特征,如:4=2+2=22,6=1+2+3=123
在-1000~1000中能找出多少个数?能保证N=a+b+c=a×b×c


133) 根据数学定理,任何一个正整数n的立方一定可以表示成n个连续的奇数的和,那么可以表示成几到几的奇数之和?


134) 将下列各图输出成邻连矩阵


135) 找出这样的四位数,使 是1212的倍数。


136) 在的小围棋格子中,随机填入4个0、4个1,当作白棋、黑棋,判断当中(如果有棋)那个棋子是否是活棋(有气)

137) 的循环节有多长。
算法提示:高精度算法

138) 计算近似的π(精确到小数点后四位)


139) 高等数学中e与一样重要,精确到小数点后四位。



140) 将自然数n转化为十六进制数。
 (在十六进制中,A,B,C,D,E,F分别表示10,11,12,13,14,15)
 
 
141) 有一个整数的平方,千位、百位数字相同,十位、个位数字相同,形如:

n2=aabb,求它是多少?


142) 任意给你3个自然数,产生所有的6位回文数。
(从左到右看,从右到左看数字排列一样的数叫回文数)


143) 任意输入5个自然数成一串,给你一个除号将他们分割,求出所有能整除的算式。


144) 设计解方程的程序,用户依次输入,程序能解这样的方程:axb=c


145) 某人从A出发,只能按"→","↑"方向走,去B点,求最小路程。

算法提示:动态规划


146) 按求根公式设计一元二次方程的求根程序。(仅考虑实数根)




147) 用0.618法求解三次方程的近似根:=9




148) 求最短路程。

算法提示:动态规划


149) 某人有10根长度不一(但无二根一样)的棒,任取2~9根,有多少种取法?
算法提示:用二项式定理

150) 三个小孩依次写了一位、二位、三位的自然数,现欲将此三数调整位置后拼接的六位数为最大,设计算法。


151) 将1,2,3,......,9这九个数分成三组,分别组成三个三位数,且使这三个三位数构成1:2:3的比例,求出这样的三组数。


152) n个资源分配到m个项目上,项目分配个资源,可获益,求最大总效益。(由图可知:A选6,B选5,总效益最大)

153) 在如下的数字表中,从A到Z寻找总和是51的走法。

154) 在MxN的方格中仅可按照向北、向东两方向从A到B,共有多少种不同的走法?

155) 按照中国马走法(即走日字的对角线),找出从A到B的三种走法。

156) 设有一个的方格的棋盘(1≤,≤100),求出该棋盘中包含多少个大大小小的正方形?


157) 即时输出每次用户输入数据后的平均数。
算法提示:导出平均数的递推公式


158) 用筛选法对大数进行因数分解:20072008
算法提示:设N=(X+Y)*(X-Y)=X2-Y2再看看哪些平方数之差是的末位数是8?


159) 给定一个八位数,如13572468,给出2个乘号,怎样插入,使其积为最大?


160) 用动态规划找出一条线路,使从A到Z所经历的各数之和为最大,方向只能选择 和


161) 给定几个实数,=1,2,3,......,。
① 求其值相差最大的相邻数
② 求其值最接近的两个数
算法提示:先进行排序

162) 求2008这个数的:
①值
②与2007的异或()值



163) 设计算法,对0~100.00之间的数(最多是两位小数)进行快速排序和排名
算法提示:定义元素为10000个的数组,使用下标归并.



164) 用程序输出:按图示的箭头方向,用自然数填满方格

165) 用竖式输出17×37的全部过程


166) 999888 x 777666555=?
算法提示:用乘法结合律计算


167) 10个人围成一圆圈,从某一人开始数起,凡数到5的人出圈,剩

下的继续从1开始数,循环反复,直到剩下1人为止。问这个人起先应该站在什么位置。


168) 求从A到D的最短路程。

169) 设有18块形状一样的金币,只用一台无刻度的天平秤,要拣出其中最重的金币,应如何秤才使过程最少?


170) 有10只茶杯,其中5只口朝上,5只口朝下,每次只能翻转4只,设计一种方案将它们全部翻成口朝上。(算法提示:从结果开始递推)


171) 统计1,2,3,......,2008中,有多少数字含有"0"?


172) 数列1,2,3,......,999中,遇0都不写,如200写成2,208写成28,即所有数字都不含0,求这种数列各项之和。


173) 一条线正好能围成半径为10的圆一圈,求这条线围成正方形时,此正方形的面积,围成正三角形时,此三角形的面积。



174) 求把一个整数100无序划分成3个互不相同的正整数之和的方法总数。



175) 利用FSO对象,产生下列文件:(建议查看微软官方帮助)
①文本文件;②网页文件;③VBS文件;
④批处理文件⑤快捷方式;⑥URL链接文件。


176) 利用WSH对象:(建议查看微软官方帮助)
①获取电脑用户名;
②运行画图程序。



177) 利用JSDraw对象:
①生成10×10的正方格
②生成黑白相间的10×10棋盘方格
③自制平移动画
④自制旋转动画


178) 若F(1)=1,F(2)=2,F(n)=F(n-1)+F(n-2),求F(100)。
算法提示:递归


179) 若只按" 和 "(45度)两个方向一步步地从上方7历过每一行,使所历之数的和为最大,应该怎样走下来?输出历过的各数。

算法提示:贪心法或动态规划
180) 求一个数列中连续五个数和的最大值。数列是这样生成的:100项二位自然数(随机数)。



181) 在长串数字135792468中插入K个"+",使其和为最小。规则:"+"号左右都必须有数字。当用户输入K后,程序输出最小的和。


182) 判断形如"https://www.wendangku.net/doc/1311589515.html,/"网址是否合法:"http://"必须有,其后在若干字母串中有三个以上的点"."进行分割


183) 随机产生0~750间的自然数作学生成绩分数,25分划一段,统计各段内的人数。(注意分界点的数不要重复统计)
算法提示:用取整函数归并相应下标的数组元素中。


184) 把"我们都是好学生"逐字的ASC码加119,看看是句什么话?


185) 把"我们都是好学生"逐字的ASC码与110与或运算,再看看是句什么话?


186) 把"我们都是好学生"逐字间加上空格


187) 将用户输入的十个字母进行大小大英文字母转换


188) 把"我们都是好学生"逐字的ASC码转化为十六进制,并用下划线分割每一个汉字的代

码。


189) 显示当前年、月、日,时、分、秒,星期几?



190) 计算时差:到2020年1月10日还有多少个星期?



191) 仅用0,1组成的十进制数N是99的倍数,求N的最小位数


192) 仅用5,6,7,8四个数,再用上加、减、乘、除四种运算符号,不能用括号,输出结果等于24的全部算式


193) 将1000表示成八进制数


194) 所有六位数中,11的倍数有哪些?


195) 编程计算常用图形的周长、面积、体积。


196) 输出矩阵:数字从1到200, 矩阵A:40行,50列,1,2,3,4,5,......,50横着排;矩阵B:40行,50列,1,2,3,4,5,......,40纵着排;



197) 设计根据当前年份和用户年龄n推算生肖的程序




198) "This is a book,and that is a pen ." 找出单词"is"的个数和所在的位置


199) 将用户输入句中"This is a book,and that is a pen ."的单词"a"替换成单词"two"


200) 输出杨煇三角形[即二项式定理的各系数]到第十行
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 ......


201) 把10X10的方格中依次填入1,2,3,......,100个数,计算两条对角线上各数之和



202) 把在x=1,到x=2之间的值分成1000段,每段宽作梯形的高,、分别作为梯形的上底与下底[d=0.001,k=1,2,3,......,1000],计算所有梯形的面积之和


算法提示:本题为学习微积分做引子。

PART-3------------由随风整理提供
计算机竞赛题库[综合篇]


A类综合习题_来自随风习题集



1.一种计算机病毒叫黑色星期五,如果当天是13号,又恰好是星期五,就会发作起来毁球计算机的存储系统,试编程找出九十年代中这种病毒可能发作的日期。


2.任意给定一个自然数N,要求M是N的倍数,且它的所有各位数字都是由0或1组成,并要求M尽可能小。
例:N=3:M=3*37=111, N=31:M=31*3581=111011


3.符合下面条件的5个正整数:
(1)5个数之和为23;
(2)从这5个数中选取不同的数作加法,可得1-23中的所有自然数,打印这5个数及选取数组成的1--23的加法式。


4.将数字65535分解成若干个素数之积。


5.由1..9这九个数字组成的九位数(无重复数字)能被11整除,求最大、最小值。


6.某次智力测验,二等奖获得者共三人,以下奖品每人发给两样:
①钢笔 ②集邮本 ③影集 ④日记本 ⑤圆珠笔 ⑥象棋
打印各种分配方案及总分配数。


7.19个同样种类的零件,已知其中有一个是次品,比正品较轻,仅限用天平称4次,把次品找出来,要求打印每次称量过程。


8.输入N个数字(0-9),然后统计出这组数中相邻两数字组成的数字对出现的次数。
如:0,1,5,9,8,7,2,2,2,3,2,7,8,7,9,6,5,9中可得到:
(7,8)数字对出现次数2

次,(8,7)数字对出现次数为3次。


9.由M个数字构成一个圆,找出四个相邻的数,使其和为最大、最小。



10.输一个十进制数,将其转换成N进制数,N:2--16


11.读入S,N两个自然数(0<=S,N<=9),打印相应的数字三角形(其中,S表示确定三角形的第一个数,N表示确定三角形的行数)。
例:当N=4,S=3时打印: 当S=4。N=4时打印:
3{首位数为奇数} {首位数为偶数} 4
4 5 6 5
6 7 8 9 8 7
9 1 2 3 4 3 2 1



12.如图所示的9*9的矩阵中,除了10个格是空的外,其余的都填上了字符"*",这10个空的格子组成了一个五角星图案的10个交叉点。
下矩阵为输入(1,5)时的输出
* * * * * * * * * * * * 0 * * * *
* * * * * * * * * * * * * * * * * *
* * * * * 4 * * 7 * 3 * * 6
* * * * * * * * * * * * * * * * * *
* * * * * * * * * 1 * * * 9 * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * * * * * 5 * * * *
* * * * * * * * * * * * * * * * * *
* * * * * * * * 8 * * * * * 2 *
编写程序,由键盘输入这10个点中的任一个(如:输入(1,5)是指五角星顶上的那个点),则计算机从这个点开始,给这10个点依次正确赋值(0.1.2......9)最后打印出这个矩阵。正确的赋值规则如下;
1)D=0
2)将D的值填入当前的点;
3)如果D<9则D=D+1,否则结束;
4)由当前的点沿五角星边的直线(不能打折),跨过另一个点(可以是已填上数字的点),到达未被填上数的第三个点,此时这个点成为当前点,返回2。


13.从0-9之间取N个数字,组成每位数不重复的所有可能的N位数,按从小到大的顺序进行编号,当输入其中的任何一个数M时,能打出该数对的编号。
如:当N=3,M=132时,则输出:
[123(1),132(2),213(3),231(4),312(5),321(6)]―――>X=2

14.在6*6的方格中,放入24个相同的小球,每格中放一个,要求每行,每列中都有4个球(不考虑对角线),编程输出结果。


15.在已知数列中(长度为N),相邻若干数之和能被11整除的有多少组,分别打印出来,表现形式为从哪个数到哪一个数来描述一种组合。
例:在数列1,4,8,10,16,19,21,25,30,43中,有:
(4,8,10)=22,(10,16,19,21)=66,即为其中两种组合。


16.将1-9这九个数字,如下图排成一个环,请在某两个数字之间剪开,分别按顺时针和逆时

针次序排列形成两个九位数,要求剪开后所得到的两个九位数的差能被396整除,共有几组剪法?
9
1 3
7 4
5 2
8 6


17.从键盘输入一个自然数N,然后将1到3N+2的自然数填入下图,使得用线段相连的两数之差的绝对值能产生数列1,2,... 3N+2
[缺图]


18.给定一串整数数列,求出所有的递增和递减子序列的数目和转换元素。
如:数列7,2,6,9,8,3,5,2,1可分为(7,2),(2,6,9),(9,8,3),(3,5),(5,2,1)五个序列,称2,9,3,5转换元素。


19.输入N个学生的学号和一门功课的成绩:
①求出高于平均分的人数,并打印这些人的学号和成绩。
②按从高到低的顺序,列出学号和成绩(要求能够处理同名次)。
③统计各分数段的人数:60分以下的一段,60分以上则每隔5分为一段,95分以上为最后一段。用直方图形式打印输出。


20.猴子选大王:
①N只猴子站成一行,每隔M只从头到尾报数,报到的退出,打印每次过程,直剩下一只为止。
②N只猴子站成一行,每隔M只报数。先从头到尾,报到尾后,再返回从尾到头报数,打印每次方向及过程,直到剩下二只时,以排在后面的(指报数方向)为大王。
③N只猴子围成一圈,从P个开始,每隔M只报数,打印每次过程,只剩下一个时为大王。


21.将M * N的矩阵,转置为N * M的矩阵输出。


22.1,2,4,7,......是二阶等差级数,因为它们后项减前项的差均组成等差级数1,2,3,......。找出5个组,每组4个相邻的素数,其中每一组都构成二阶等差级数的4个相邻的项。


23.矩阵中填数,当给出N * N的矩阵,要求用程序填入下列形式的数:

①倒数 ②蛇形填数 ③回转填数 25,24,23,22,22 01,03,04,10,11 1,16,15,14,13 20,19,18,17,16 02,05,09,12,19 2,17,24,23,12 15,14,13,12,11 06,08,13,18,20 3,18,25,22,11 10,09,08,07,06 07,14,17,21,24 4,19,20,21,10 05,04,03,02,01 15,16,22,23,25 05,06,07,08,09
24.因数分解:对一个数N进行因数分解。如12=2 * 2 * 3=4 * 3=6 * 2


25.用1,2,3,...... 9九个数(不能重复),组成下列式子:
( )×( ) -( )=96÷( )( ) +( ) = ( )
求出各种可能方案。



26.已知:有正整数K1+K2......Kn=M
要求:找出一组最佳的分解,使得K1 * K2 *...... * Kn为最大。
例如:N=2时,有K1+K2=6
则当K1=3,K2=3时,K1 * K2=9为最大。
∴K1=3,K2=3为最佳分解
输入N,M,求最佳分解。



27.打出所有满足条件的三位数

的素数。条件是:它们的序数、数码和、数码积或是素数、或是1、或是0。
例如:113是素数,逆序数311也是素数,数码和是5,积是3,都是素数。所以113是满足条件的三位数。


28.九宫图的特点是横、竖、对角上的数字之和相等,也称为幻方。请编写程序,调整九宫图中的数字,使得横、竖、对角上的数字之和都不相等(称为反幻方)。程序要求:输出所有调整方案。



29.在一个矩阵(N×N)中,若上三角中的元素全为零,如下图所示:
为了节省空间,可用一个一维数组来表示这个矩阵。
如下图可表示为:(123304)
1 0 0
2 3 0
3 0 4
在此种方式下,编程完成两个矩阵的加法与乘法。
数学基础:用矩阵A的i行同矩阵B的j列相乘,对应元素之积相加,得矩阵C的(I,j)元素---项道德注


30.将1,2,3,......20共20个数字排成一排,使相邻两个数字之和为素数,并且头尾两数之和也为素数。求出所有满足条件的排列。


31.设A1,A2......An为1,2,...N的一个排列,记BI为这个排列中位于I左边但大于I的数字的个数(I=1,2,......n),则B1,B2,...Bn称为排列A1,A2,...An的反序表。


32.读入N个字母的字,判断该字是否回文。



33.有N组数据,每组中有M个字串,找出所有符合下列条件的字串S,条件是:在每一组中,字串S都是其M个字串之一。键盘输入N,M的值及名字串。


34.读入一字串(长度不大于50),删去字串中相同的字符。


35.输入十个字符串,长度在20--50之间。检查每个字串,若遇到字母A,就在其后插入一个空格,最后打印全部处理后的字串,并统计26个安母各出现多少次。



36.接收一个任意长度的字串(小于100个字符),将该字符串中的字符按照ASCII码表从小到大的顺序重新排列形成一个新的字符串并打印出来。



37.有一段文字由若干字母组成。检查文字中每个字母出现的次数,输出时,按字母出现频率的降序排列,并按以下格式打印(不含未出现字母):
字母 频率 百分比%
-- -- --
-- -- --


38.读入一行文本,包含若干个单词(以空格间隔,%结尾)。将其中以A开头的单词与以N结尾的单词,用头尾交换的办法予以置换。



39.求出一个子串的字符串中的位置。


40.在若干个字符串中,找出一个长度最长的共子串。



41.从键盘上读入一个字符串(称为原串),其长度不超过50个字符,并以字符′$′作为结束符。
当原串读入后,对原串进行编辑,其功能有(菜单选择):
①在原串中指定的字符前面插入若干个字符(子串)。若在

原串中有若干个指定的字符,则插入在第一个指字符的前面。例:原串′abcd dby′
在指定字符′b′的前面插入′uwv′,此时字符串为′auwvbc dby′
②在原串中,删除指定的子串,若原串中有多个相同的子串,则删除最后一个子串。
例:原串′abxyzw cdxyzh,uvxxyzh′
删除子串′xyz′,则删除后得到:′abxyzw cdxyzh,uvxh′
③替换操作:在原串中,将某个子串用新的子串去替换。若原串中有多个被替换的子串,则应全部替换(但不递归替换)。
例:原串′abxyz ddxyzxyzhe′
将原串的′xyz′用′uvw′替换,替换后成为:′abuvw dduvwuvwhe′




42.′Dos′被换为良序字串,因为它之中的字母是按ASCII码的顺序排列的,而′DATE′则不是良序字串。
现要求给出一个N×N的字母方阵,从中选出给定长度M的良序字串。



43.有一集合中有N个元素,每个元素均为自然数。给定一个total(假定每个元素均小于total),求:满足条件的所有子集,子集中各元素之和应等于total.。



44.一个集合有如下元素:
1是集合元素;
若P是集合的元素,则2 * P+1,4 * P+5也是集合的元素。
求:此集合中最小的K个元素。



45.有一个M×N的矩阵,要求将1至M×N的自然数填入矩阵中并满足:
(1)同一行中,右边的数字比左边的数字要大:
(2)同一列中,下面的数字比上面的数字要大。
打印出所有的填法。



46.有一批订单,订单中需要有长度为L1的钢材N1根,长度为L2的钢材N2根,......长度为LK的钢材NK根。钢材每切割一次,将会有长度为DL的损耗。现有长度为L的钢材一根,要求从订单中选出若干根,使得钢材损耗最少。



47.设有序列b1,b2,b3,......bm,且bi≠bj。若存在:il在b1,b2, ......bm中有长度为N的不下降序列。求:序列b1,b2, ......bm中长度最长的不下降序列。



48.编制一个扑克牌发牌、理牌的程序。将一付除去、小王的扑克牌,随机发给4个人,先将每人得到的牌,按黑桃(S),红心(H),方块(D),草花(C)四种花色进行整理,然后再在每种花色中按A,K,Q,J,10...2的顺序进行排列并输出。


49.用扑克牌玩24点游戏时,对牌面的计算方法如下:
牌面 计算方法 牌面 计算方法
2 2点 J 11点
3 3点 Q 12点
. . K 13点
10 10点 A 1点

要求从一付扑克牌中任取4张,通过+,-,×,÷的运算而得到24点(每张牌能使用一次)。
例如:有牌3,5,6,8,则可通过:3×(6-5)×8=24
计算出24点,但也存在计算不出的情况,如:A,A,A,2

等。


50.将一个表达式如:(a+b)*c+e+d/f * (a+k)使用栈化为前缀与后缀来表示。


51.设有数2,3,5,7,13,运算符号+,-,*且运算符无优先级之分。
如: 2+3 * 5=25 3 * 5+2=17
现给出任意一个整数N,要求用以上的数和运算符,以最少的运算次数产生出N。
例如:
N=7,――――>7=7 即0次运算
N=93,――――>93=13 * 7+2 即2次运算



52.已知三元素的字母表(′A′,′B′,′C′)。生成一个该字母表上的含N个(N<50)个字符的序列,要求生成的序更中没有两个相邻的子序更相同。
例如:N=5时
′ABCBA′是可接受的;
而′ABCBC′是不可接受的。


53.用1......N这N个自然数顺序组合成一个多位数,现要求从中删除数字K,使得剩下的数为最大。


54.求某一个三位数ABC,要求满足下列条件:
(1) A>B>C>0
(2) 交换A,C位置得到新的数比原数少495;
(3)对ABC作全排列而得到的六个三位数之和为2886。


55.输入两个正整数X,Y,将X,Y化为二进制数,然后将这两个二进制数作二进制加法运算,再将结果化为十进制输出。


56.将十进制数N,转换成P进制数M。


57.一个整型变量只能用来贮较小的N!的值,当N较大时,可将阶乘值中的每一个数字存放在一个一维数组的一个元素中。使用这种方法,打印:
①N!的值;
②N!-M!(M>N);
③N!+M!


58.随机产生50个1..500的自然数。对每次产生的数,若是奇数,则加入队列,若是偶数则从队首取出一个数据输出,要求显示队列变化情况。


59.利用两个栈S1,S2模拟一个队列,写出用栈的运算来现队列的插入与删除运算的算法和程序。


60.编程完成以下的高精度计算:
①多位数乘以一位数;
②多位数除以一位数;
③多位数乘以多位数(要求用尽可能少的存储单元);
④多位数除以多位数(要求用尽可能少的存储单元);
⑤N!,要求精确到P位 0<P<=1000。






B类综合习题_来自随风习题集


1.合并链表:
已知两个链表{an}={a1,a2, ...... an},{bm}={b1,b2,......bm},将其合并成一个链表{cn}={a1,b1,a2,b2,......}


2.分解链表:
已知一个由整数组成的线性表,存储在链表中。试将链表中各结点的数据除以3,分别得到余数0,1,2,按此三种不同情况,将原来的链表分解成三个不同的链表。



3.算术表达式求值:输入一个由数字、+,-,*,/与括号组成的算述表达式,求其值。



4.设有数列a1-=0,a2-=1,a3=a1+a2-,......an=an-2+(n-1)an-1......求出其前40项,并用尽可能少的字节表示结果



5.编程求解两个高精度正实数的除法,要求精确到小

数点20位,若20位内有循环节,请标出。



6.求输入的实数算术表达式的值,结果精确到小数点后第N位(0<N<=30=。其中:表达式中出现的运算符为:*,/,-,操作数不多于5个不出现括号,但必须考虑运算优先级顺序。



7.算述表达式:组成表达式的有{0,1,2,3,4,5,6,7,8,9,+,-,*,/,()}这15个元素,求有n个元素组成的所有表达式。



8.对于次数很高,但项目很少的多项式,可用链表来表示。
例如:X100-76X78+3X3-7可表示为
1 1000*
→-7678*
→3 3 *
→-70NIL
在此方式下,编程完成两个多项式的加法与乘法。



9.一元多项式加法:
实现两个整系数一元多项式的加法。
如:有多项式5X6+4X3-7X4+1与多项式50X2+4X+0X3
结果为:5X6-7X4+4X3+50X2+4X+1
程序要求:键盘输入式项式的各项系数及指数,每项系数及指数为一组数据(系数及指数之一可为零),以′0,0′结束一个多项式的输入,结果按降幂排列,同类项要合并(指数最大不超过30)。
上列第一式的输入为: 5,6
4,3
-7,4
1,0
0,0
上例输出结果表示如下:
5X6-7X4+4X3+50X2+4X+1



10.编程序计算两个多项式除法的商与余数。
例如:F(X)=X4+4X3+6X2+7X+9
G(X)=X3+3X2+3X+1
则:F(X)/G(X)=X+1......3X+8



11.多项式排列问题:
多项式P∷=∣{±项}
项∷=Laibjck
其中:L:整数
i,j,k:包括0以内的任意整数
例如:P=3a2-2ab2c+bc2-7
多项式的输入方式:(a1,a2,a3,a4)
其中:a1 :系数,可正,负
a2,a3,a4:表示i,j,k
程序要求:按降序a→b→c 方式排列输出。



12.最小生成树:求出一个图的最小生成树,即该图的所有生成树中,树权最小的那棵生树。



13.求出一个二叉树的深度与最大宽度。



14.给出一个字符表达式,首先进行语法检查,然后表示成一个树的形式输出。



15.以下方法称为最小代价的字母树:
给定一个正整数的序列,例如:4,1,2,3不改变数的位置把他们相加,并且用括号来标记每一次加法所得到的和。
例如:((4+1)+(2+3))=((5)+(5))=10
除去原数4,1,2,3之外,其余都为中间结果,如:5,5,10
将中间结果相加,得到:5+5+10=20数20称为此数列的一个代价。
若得到另一种算法:(4+((1+2)+3)=(4+((3)+3)=(4+(6))=10数列的另一个代价为:3+6+10=19
若给出N个数,可加N-1对括号,求出此数列的最小代价。(给出过程)



16.对一个图进行拓扑

排序,方法如下:
(1)在有向图中选一个没有前趋的结点且输出之;
(2)从图中删去该结点和所有与之相连的边。
重复以上过程,直到全部结点均已输出或者图中没有无前趋的结点为止,后一种情况则说明有向图中存在环,无法进行须扑排序。



17.设有N门课程(10<=N<20),课程名字用a,b,c......英文字母来表
示,学生学习某门课程的条件是:
①不需要任何条件;
②必须学习完某些课程之后,才能学习此课程。
程序要求:(输入以0,0为结束符)
①输入课程数N,及每门课程的名字,并进行语法检查;
②输入学习课程之间的关系:
输入形式:(a,b),表示a在b的前面学习,要学习b必须先学完a;
③若学生一次只学一门课程,给出一种学习的顺序,表示形式如下:
a→b→c→d
④若学生一次可学习任意多门课程,表示形式如下:
(a,b)→(c,e,d)→(g)
问:一个学习至少要几次学习才能学完全部课程。



18.正方形矩阵染色:有n×n的正方形矩阵,划分为n×n个边长为1的正方形,用黑、白两种颜色对这些小正方形涂色,求所有涂色方案(不包括旋转后重复的方案)。



19.换钱币:给出一组兑换钱币的公式。
例=如:
(4,1)=5 (4个1分可换1个5分)
(2,2),(2,5)=20 (2个2加上2个5分可换1个20分)
......
该任务可以一直进行到不能兑换为止。例如根据以上公式,某人有:
(6,1),(8,2),(3,5),(0,0)则可以用4个1分换成1个5分,此时,有(2,1),(8,2),(4,5)
再用4个2分,4个5分换成2个20分;
此时,有(2,1),(4,2),(0,5),(2,20),
此时已不再换,共有钱币2+8+40=50分
问题:给出一组兑换公式,输入方式:
(A1,B1),(A2,B2),......(An,Bn)=r(分面值)
......
(0,0) (结束)
同时给出某人开始时所有的钱币:
(X1,Y1),(X2,Y2),......(0,0) (结束)
用不兑换方法,使此人具有最大的面值。



20.用下列方式建立形成一个等价关系组:先输入若干组等价关系时,如:
(a,b)表示a,b等价;若有(a,b),(b,c),(c,d)则表示a,b ,c ,d 等价,用(-1,
-1)表示输入结束。
当关系组建立后,再输入K个元素对,编程判断它们属于哪些关系类。
例如:当初始状态时建立了如下四组关系对:

313918
54617


313918
54617
7

3918 
5617 
7
13
4


一 二 三 四一 二 三 四 一 二 三 四

(初始状态)(状态一) (状态二)

当K=1时的元素对为(5,7)时,则有状态一;
当K=2时的元素对为(7,13)时,则有状态二;
当K=3时的元素对为(20,2)时,则应属于状态二的第四类。



21.建立二叉树的链表存储结构后:
①写出计算二叉树中叶子结点数目的递归算法;
②编写复制这棵二叉树的非递归程序。



22.设有一个字符串,长度小于100,且全部以英文字母组成。对字串中的每个字母可用0,1,2三个数字进行编码,且数字可以重复使用。
程序要求:
①输入字符串,并能判断输入是否有错;
②输出对应的编码表及码长,要求字串的编码长度为最短;
③根据上述编码表,给出一些编码,然后求出其原字符串。
例如:输入的字符ABCBAAADDEF
其对应的编码表为:
A: 2
S: 10
C: 11
D: 12
E: 00
F: 01
对应的编码为:210111022212120001 码长为:18
根据该编码,给出编码:010001121110222
则输出字串:FEFDCBAAA



23.某些密码由N个英文字母组成(N<26=,每字母的平均使用率为:
W1,W2,W3,......Wn,要求编程完成下列任务:
①键入英文字母及个数;
②键入N个英文字母的使用频率;
③用二进制数对该N个英文字母进行编码(最短,无二义性);
④键入字母短文(单词用空格区分),输出相应编码;
⑤键入二进制编码短文,输出译文。



24.最长连线:设有一个N×N的方格图形,且N为3倍数。要求在图形中存放0或1,相邻的1可以连成一条连线,连接的方法可以是行,也可以是列;同时约定一条连线只能有一个起点和一个终点,图形上的点最多只能访问一次。例如N=6时,有下图:

123456

1 111001
110111
000101
110111
010000
111100

2
3
4
5
6

在该图中,包含有如下的一些连线:

1←1← 1 1 →1 1

↓ ↓ ↓
1→1 1 1→1 1
↓ ↑ ↓
1→1→1 1 1
↑ ↓
1←1←1
等等。
但如下形状不是一条连线:
1→1

1

1
1←1→1→1
在以上的连线中,最长的连线为: 表示方法:
最长连线长度:LMAX=9
1 连线:(1,6)→(2,6)→
1→1 1 (3,6)→(4,6)→
↑ ↓ (4,5)→(4,4)→
1 1 (3,4)→(2,4)→
↑ ↓ (2,5)
1←1←1 连线的表示不是唯一的,仅给出一种即可。
数据输入:首先输

相关文档
相关文档 最新文档