您好,欢迎来到尚佳旅游分享网。
搜索
您的当前位置:首页信息学奥赛题库

信息学奥赛题库

来源:尚佳旅游分享网
 一、初级编程入门题

顺序结构

1、请编写一个程序,求一个正方的周长。 2、请编写一个程序,求一个长方形的周长。 3、请编写一个程序,求一个三角形的周长。

4、请编写一个程序,从键盘输入两个整数,要求求和然后输出和。 例如: 输入 1 4 输出 5

5、要求从键盘输入一个三位数,要求百位变十位,十位变个位,个位变百位: 例如 输入 123 输出 312

6、输入一个四位数要求按如下交换输出: 例如 :输入 1234 输出 4321

7、输入一个四位数要求输入各位数字的和。 例如: 输入 4567 输出 22

8、编一程序,键盘输入整数A,B的值,然后打印A除以B的商的整数部分及余数。

9、输入一个时、分、秒,把它转换为一个秒数。 例如 输入 2 3 4 代表2小时3分钟4秒 输出 7384 代表一共有7384 秒

10、求三角形面积:给出三角形的三个边长为a,b,c,求三角形的面积。 提示:根据海式来计算三角形的面积:

abc2 S=;Area=S(Sa)(Sb)(Sc) 11、编一程序,从键盘输入整数A,B的值,然后把A,B的值交换后输出。从键

盘输入两个整数,打印出更小的那个数。

12、设X,Y,Z的值分别是FALSE,TRUE,FLASE。写出下列逻辑表达式的值:

not x and not y; true and x or y;

(x and z) or (z and y); x or z and y;

(4>5) and (7<8) (8>9) or ( 9<10)

2 and ((3=3) or (3<7))

选择结构

13、读入三个整数,从小到大输出。

14、从键盘输入一个数,判断它的奇偶性,如果是奇数则输出yes,否则输出no。 15、从键盘读入一个数,判断它的正负。是正数,则输出\"+\",是负数,则输出\"-\"。

16、从键盘输入一个数,如果是两位数那么输入yes否则输入no。 17、输入两个数a,b,输出较大数的平方值。

18、铁路托运行李规定:行李重不超过50公斤的,托运费按每公斤0.15元计费;如超50公斤,超过部分每公斤加收0.10元。编一程序完成自动计费工作。 19、某超市为了促销,规定:购物不足60元的按原价付款,超过60不足200的按九折付款,超过200元的,超过部分按八折付款。编一程序完成超市的自动计费的工作。

20、打印某年某月有多少天。(提示:A、闰年的计算方法:年数能被4整除,并且不能被100整除;或者能被400整除的整数年份。B、利用MOD运算可以判断一个数能否被另一个数整除)。

21、编写一个程序,功能是从键盘输入一个整数,判断它是否二位数,如果是,就打印它,然后结束程序,

22、编写一个程序,功能是从键盘输入三个整数,打印出其中最大的一个值。

23、当前小学生的成绩单由以前的百分制改为优秀、良好、合格、不合格四个等级的等级制。编一程序完成分数的自动转换工作。转换规则如下:60分以下的为不合格;60到69分为合格;70到分为良好;90分以上的为优秀。(提示:可以利用DIV运算来使程序更简明)

循环结构

分别用repeat,while循环做以下习题。

24、计算1—1000之间能同时被3和5整除的整数的和。 25、求所有的三位数中十位数能被个位数和百位数之和整除的数。 26、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。

27、求所有满足条件的四位数: (1)这四位数是11的倍数; (2)b+c=a; 28、计算下列式子的值:

28a (1)1+3+……+99 28b (2)1+2+4+8+…+1024

29、输入一个整数,计算它各位上数字的和。(注意:是任意位的整数) 30、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。) 用for循环做以下习题

31、1+3+5+…..+…..99=?

32、1+1/2+1/3+1/4+……1/100=?

33、1*2+2*3+3*4+……+n*(n+1)=?

34、1+1/2!+1/3!+…..1/n!=?

35、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。

36、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。)

37、1+(1+3)+(1+3+5)+ ……(1+3+5+……+n)=?n为奇数。

38、s=-1+3-5+7-9+……n n为奇数。

二、综合练习题

39、计算下列式子的值:

(1)1+2+……+1000 1a

(2)1+3+5+……+97+99 2a (3)1+2+4+8+…+1024 3a 40、输入一个四位数,求它各位上数字的和。

41、求所有的三位数中十位数能被个位数和百位数之和整除的数。 42、求水仙花数。所谓水仙花数,是指一个三位数abc,如果满足a^3+b^3+c^3=abc,则abc是水仙花数。

43、 求所有满足条件的四位数: (1)这四位数是11的倍数; (2)b+c=a; 44、输入一个整数,计算它各位上数字的和。(注意:是任意位的整数) 45、输入一整数A,判断它是否质数。(提示:若从2到A的平方根的范围内,没有一个数能整除A,则A是质数。) 46、求两个数的最小公倍数和最大公约数。(提示:公约数一定小于等于两数中的小数,且能整除两数中的大数。公倍数一定大于等于两数中的大数,且是大数的倍数,又能给两数中的小数整除。) 47、编写一个译码程序,把一个英语句子译成数字代码。译码规则是以数字1代替字母A,数字2代替字母B,……,26代替字母Z,如遇空格则打印一个星号‗*‘,英文句子以‗.‗结束。

48、―百钱买百鸡‖是我国古代的著名数学题。题目这样描述:3文钱可以买1只公鸡,2文钱可以买一只母鸡,1文钱可以买3只小鸡。用100文钱买100只鸡,那么各有公鸡、母鸡、小鸡多少只?与之相似,有\"鸡兔同笼\"问题。 49、输入一个正整数N,把它分解成质因子相乘的形式。 如:36=1 X 2 X 2 X 3 X 3; 19=1 X 19

50、判断一字符串是否是回文数,如121、12321、ABA等(字符串输入时以‘.’结束)。

如输入:12321. 输出:yes

51、打印下列图案:(输入N值来控制图案的规模,下列图案均以N=3为例)

& & & & & &

& & & *

& & & * * *

# @ * # # @ @ * *

# # # @ @ @ * * * & & & * * * * *

51a 51b 51c 51d

52、计算1—1000之间能同时被3和5整除的整数的和。

53、打印下列图形: 1 121 12321 1234321 12321 121 1

、一百匹马驮一百块瓦,一匹大马可以驮3块,一匹母马可驮2块,小马2匹可驮1块。试编程求需要各种马多少匹?

55、有三种纪念邮票,第一种每套一张售价2元,第二种每套一张售价4元,第三种每套9张售价2元。现用100元买了100张邮票,问这三种邮票各买几张?

56、赵、钱、孙、李、周五人围着一张圆桌吃饭。饭后,周回忆说:‚吃饭时,赵坐在钱旁边,钱的左边是孙或李‛;李回忆说:‚钱坐在孙左边,我挨着孙坐‛。结果他们一句也没有说对。请问,他们在怎样坐的?

57、找数。一个三位数,各位数字互不相同,十位数字比个位、百位数字之和还要大,且十位、百位数字之和不是质数。编程找出所有符合条件的三位数。 注:1. 不能手算后直接打印结果。 2. ―质数‛即‚素数‛,是指除1和自身外,再没有其它因数的大于1

的自然数。

58、选人。一个小组共五人,分别为A、B、C、D、E。现有一项任务,要他们中的3个人去完成。已知:(1)A、C不能都去;(2)B、C不能都不去;(3)如果C去了,D、E就只能去一个,且必须去一个;(4)B、C、D不能都去;(5)如果B去了,D、E就不能都去。编程找出此项任务该由哪三人去完成的所有组合。

59、输入一个字符串,内有数字和非数字字符。如A123X456Y7A,302ATB567BC,打印字符串中所有连续(指不含非数字字符)的数字所组成的整数,并统计共有多少个整数。

60、甲、乙、丙、丁四人共有糖若干块,甲先拿出一些糖分给另外三人,使他们三人的糖数加倍;乙拿出一些糖分给另外三人,也使他们三人的糖数加倍;丙、丁也照此办理,此时甲、乙、丙、丁四人各有16块,编程求出四个人开始各有糖多少块。

61、截数问题: 任意一个自然数,我们可以将其平均截取成三个自然数。例如自然数135768,可以截取成13,57,68三个自然数。如果某自然数不能平均截取(位数不能被3整除),可将该自然数高位补零后截取。现编程从键盘上输入一个自然数N(N的位数<12),计算截取后第一个数加第三个数减第二个数的结果。

62、从键盘输入一段英文,将其中的英文单词分离出来:已知单词之间的分隔符包括空格、 问号、句号(小数点)和分号。

例如:输入:There are apples; oranges and peaches on the table. 输出:there are apples oranges and peaches on the table

63、A,B,C,D,E五个人合伙夜间捕鱼,凌晨时都疲惫不堪,各自在河边的树丛中找地 方睡着了,日上三竿,E第一个醒来,他将鱼数了数,平分成五分,把多余的一条扔进河中, 拿走一份回家去了,D第二个醒来,他并不知道有人已经走了,照样将鱼平分成五分,又扔 掉多余的一条,拿走自己的一份,接着C,B,A依次醒来,也都按同样的办法分鱼(平分成 五份,扔掉多余的一条,拿走自己的一份),问五人至少合伙捕到多少条鱼。

也许你能用数学办法推出鱼的条数,但我们的要求你编出一个程序,让计算机帮你算出鱼的总数。

、试编程找出能被各位数字之和整除的一切两位数。

65、一个正整数的个位数字是6,如果把个位数字移到首位,所得到的数是原数的4倍,试编程找出满足条件的最小正整数。

66、某本书的页码从1开始,小明算了算,总共出现了202个数1,试编程求这本书一共有多少页? 67、从键盘上输入两个不超过32767的整数,试编程序用竖式加法形式显示计算结果。

例如: 输入 123, 85 显示: 123 + 85 --------- 208

68、有30个男人女人和小孩同在一家饭馆进餐,共花了五十先令,其中男宾3先令,女宾2先令,小孩1先令。试编程求出男人女人小孩各多少人?

69、找出100到999之间的整数中所有等于它每位数字立方和的数

70、求所有满足条件的四位数: (1)这四位数是11的倍数; (2)a,b,c,d均是小于10 的互不相等的自然数; (3)b+c=a; (4)bc是完全平方数.

71、已知四位数3025有一个特殊性质: 它的前两位数字30和后两位数字25的和是 55, 而55的平方刚好等于该数(55*55=3025). 试编一程序打印所有具有这种性质的四位数.

72、编程找出四个互不相等的自然数, 它们之中任意两数之和为偶数, 任意三数之和可以被3整除, 而且这四个数的和越小越好(已知它们的和不大于50).

73、以不同的字母代表0--9之间的数字, 现有如下等式成立: a+bc+def=ghij,编程求出满足上述条件等式的个数并将所有等式打印输出.

74、下面的竖式表示, 图中的\"*\"号只能用素数2,3,5,7代替, 因此称为素数乘法竖式.

* * * 〓 * * --------------- * * * * * * * *

---------------- * * * * *

编程找出此乘法竖式的所有可能方案.

75、出售金鱼: 出售金鱼者决定将缸里的金鱼分五次全部卖出: 第一次卖出全部金鱼的一半加二分之一条; 第二次卖出剩余金鱼的三分之一加三分之一条; 第三次卖出剩余金鱼的四分之一加四分之一条; 第四次卖出剩余金鱼的五分之一加五分之一条;

现在还剩下11条金鱼一次卖出. 问缸里原来有多少条金鱼.

76、一个四位数是一个完全平方数,减去一个每位数字都相同的四位数( 如 1111, 5555)后, 仍是一个完全平方数. 请编程打印出所有这样的四位数. 77、将1,2,3,4,5,6,7,8,9这九个数字组成三个三位数, 使每个数都是完全平方数.

78、如果一个数从左边读和从右边读都是同一个数, 就称为回文数. 例如: 6886就是一个回文数. 编程找出所有既是回文数又是素数的三位数.

79、有一个八位数12345679, 若它乘以9, 则得九位数111111111, 试求:素数 (1)当这个数乘以什么数时, 才能得到全部由5所组成的九位数? (2)当这个数乘以什么数时, 才能得到全部由9所组成的九位数? 80、李先生和他的孙子同出生于20世纪, 他的孙子与他的年龄之差为60岁, 李先生和他的孙子出生年份被3,4,5,6除, 余数分别为1,2,3,4. 编程求出李先生和他的孙子各出生在哪一年.

81、一位妇女在河边洗碗. 邻居问:\"家里来了多少个客人?\她回答:\" 每两个客人合用一个菜碗, 每三个客人合用一个汤碗, 每四个客人合用一个饭碗, 共用碗65个\". 问共来了多少客人?

82、16/是一个分子和分母都是两位数的真分数, 且分子的个位数与分母的十位数相同. 非常奇怪的是: 如果把该分数的分子的个位数和分母的十位数同时划去, 所得到的结果正好等于原分数约分后的结果. 例 16/=1/4. 编程找出所有满足上述条件的真分数.

83、公鸡每只值5文钱, 母鸡每只值3文钱, 小鸡3只值1文钱. 今用100 文钱买鸡共100只, 问公鸡, 母鸡, 小鸡各儿只.

84、甲去买东西, 要付给乙19元, 而甲只有3元一张的钱, 乙只有5元一张的钱. 请为他们设计一个交换方案.

85、一米店有三箩米被盗去一部分, 其中左箩剩1合, 中箩剩14合, 右箩剩1合. 小偷甲说他用一马勺在左箩舀米, 每次舀满, 装到布袋. 小偷乙说他用一只木鞋在中箩偷. 小偷丙说他用一只漆碗在右箩中偷. 作案物经标定: 马勺一次舀19合, 木鞋一次舀17合, 漆碗一次舀12合. 问米店被偷走多少米? 甲乙丙各偷多少米?

86、五户人家共用一口井, 如果用A家的绳2条, B家的绳1条接长, 正好抵达水面; 又用B家绳3条, C家绳1条; 或用C家绳4条, D家绳1条; 或用D家绳5条, E家绳1条; 或用E 家绳6条, A家绳1条接长, 也都一样正好抵达水面, 问井深和各家的绳子各长多少?( 不超过999的整数解).

87、有六箱货物,重分别是5吨、2吨、3.5吨、1.7吨、1吨、5.1吨。现有一台货车,载重量10吨。设计一个程序,使这次车运走的货物最多。

88、某电台组织一次智力竞赛,计划安排奖励30人。准备了50件奖品。得一等奖者可得3件,二等奖2件,三等奖1件。希望把所有奖品都发到获奖者手中。请找出所有方案(即各等奖各有多少人)。

、从键盘输入二个整数a, b(b<>0), 若a能被b整除, 就打印\"YES\否则打印\"NO\"。

90、从键盘输入一个整数, 如果是奇数就直接打印, 否则反复除以2, 直到商为奇数为止, 打印这个奇数商。 91、从键盘输入一个小于1000的正整数, 若此数的各位数字之和能被7整除, 则打印, 否则不打印。

92、求100以内的所有素数。

93、输入一个大于1的自然数, 打印出它的质因数分解式. 如输入75则打印: 75=3*5*5. 94、某自然数N(195求1992个1992相乘结果的最后三位数。

96从键盘输入两个自然数, 求它们的最大公约数和最小公倍数。 97、一个自然数是素数, 且它的数字位置经过任意对换后仍为素数, 称为绝对素数. 例如 13. 试找出所有这样的四位绝对素数。

98、编程验证对任意自然数N, 如果各位数字平方和不是1, 则求平方和的各位数字的平方和, 最后必有145, 42, 20, 4, 16, 37, 58, 之无穷循环。

99、五位数 4H97H 能被3整除, 且它的最低二位数字所组成的数 7H 能被6整除, 求这个五位数字。 100、975*935*972*( ), 在( )中填什么自然数使四个数的乘积末四位全为0, 求出最小值。

101、修改31743的某一位上的数字, 使之成为823的倍数。

102、一个自然数, 若它的质因数至少是两重的(相同的质因数至少个数为二个, 如36=2*2*3*3)则称该数为\"漂亮数\". 若相邻两个自然数都是\"漂亮数\就称它们为\"孪生漂亮数\". 例如8与9就是一对. 请编程再找出一对\"孪生漂亮数\"。

103、任意输入二个自然数, 若商为整数, 则直接显示商; 否则把商分解成一个自然数和一个正的既约真分数之和才显示。 例如: 输入: 9, 3 显示: 9/3=3 输入: 8, 6 显示: 8/6=1+1/3

104、任意输入四个自然数a,b,c,d, 看成二个分数a/b, c/d. 求这二个分数之和. 和的显示格式为: 输入 3,2,1,6 输出: 3/2+1/6=1+2/3。 105、在自然数中, 各位数字之和的11倍正好等于自身的自然数只有一个. 请找出这个自然数。

106、求所有不超过1000的这样的整数, 它的平方的末二位数字相同但不为0。

107、P是一个大于3的质数, 对某个自然数N, PN恰好是五位数, 且至少有三个位上的数字相同, 求P至少是多少。

108、编程求最小正整数M,N(0109、验证下面结论: 一个各位数字不同且都不为0的N位数X(3<=N<=5), 将组成该数的各位数字重新排列成一个最大数和一个最小数作减法, 其差值再重复前述运算, 若干次后必出现一个N位数Y, 使之重复出现.

例如: X=213, 则有 213→321-123=198 981-1=2 982-2=693 963-369=594 9-459=495 9-459=495 这时Y=9.

110、计算:

111、小明的妈妈是负责分发全厂工资的。为使分发时有足够多的零钞,同时又尽量不使每个人领到的钱太零碎。每个月她都要计算出各种面值的钞票(100元、50元、10元、5元、2元、1元,假设每个人的工资都是整数元)各需要多少张。你能否为她设计一个程序,从键盘输入10个人的工资,再计算出各种面值的钞票各需要多少张?

112、任给一个自然数n,求出这个自然数不同因数的个数M.

113、给出一个数n的不同因数个数m,求最小满足要求的自然数n,即n有m个不同的因数。

11111......11*21*2*31*2*3*...*20例如输入 2 则输出 2 因为2有2个因数。

114、m,n为自然数,其上限为k,试编写程序,由键盘输入自然数k找出满足条件:

(n^2-mn-m^2)^2=1 且使m^2+n^2达到最大的m,n。

115、求50到100中所有奇数。 116、商店卖水果,10斤以下8元每斤,100斤以下打9.5折,即8*0.95元每斤,100斤以上含100斤打9折。输入购买水果的斤数,输出应付钱数,保留两位小数。

117、从键盘输入10个数,求出其中的最小数。

118、输出能被11整除且不含重复数字的三位数。并统计个数。

119、已知一个四位数为ABCD,若A+C和B+D的值相等,则称这个四位数为交叉

数,求四位数的交叉数和个数。

120、输入一个字符串,将其中所有的‘god‘改为‘good‘。

121、输入两个正整数a,b(1<=a<=b<=1000),输出它们的最大公约数和最小公

倍数。如:输入4 6,输出2 12。

122、从键盘随意输入10个整数,输出第5大数。

123、有一根长为514CM的钢筋,现在要截成23CM、15CM和19CM的短料,问在各至少截一根的前提下,问各截多少根,使所剩余料最少。

124、统计100以内素数的个数。

125、给出一个正整数,求出它的因子,并按下面的格式打印出来:15=3*5,20=2*2*5,28=2*2*7

126、N的阶乘之和是1!+2!+…+n!, n小于100。

127、求1到100中所有奇数。

128、求1到200中所有能被2、3、7整除的数。

129、输入一个学生的语文成绩0分到100分,如果是85分到100是优秀,输出‚BEST‛,如果是 60分到84是及格,输出‚GOOD‛,如果是 0分到59是不及格,输出‚BAD‛。

130、输入10个学生的语文成绩,分别统计成绩在85~100分,60~85分和60分以下,各分数段中的人数。

131、筐中有鸡蛋是7的倍数,二个二个一为,三个三个一数,四个四个一数,五个五个一烽均余1,求满足此条件的最小蛋数。

132、计算N!,其中N由键盘输入。

133、求1至200的和。

134、读入十个数,计算它们的和与积以及平均值。

135、任意输入一个三位数,反过来输出。

136、水仙花数是一个三位数,并且它的各数码的立方和正好等于它本身。如:

153=1〓1〓1+5〓5〓5+3〓3〓3。

137、求能被11整除,且数码的平方和是122的所有的三位数。

138、求能被11整除,且不含重复数字的三位数?有多少个。

139、求2~1000中的完数,(因子和等于它本身的数为完数。例如28的因子是1,2,4,7,14,且1+2+4+7+14=28,则28是完数)。

140、找2~1000中的亲密数对(如果A 的因子和等于B,B的因子和等于A,且A不等于B,则称A,B为亲密数对)。

141、从键盘输入三个数,输出其中的最大数。

142、从键盘输入20个数,求出其中的最小数。

143、用循环语句从小到大依次输出26个大写字母,再返向输出。

144、输入两个运算量及一运算符,输出运算结果。这相当于计算器计算。

145、非波拉契数列如下:0,1,1,2,3,5,8,13,21…从第三项开始,每一项等于前两项的和。编程求前20项。

146、有一个三位数,三个数字和为20,第三个数 3倍与第二个数的2倍及第一个数三者之和为44,第一个数与第二个数和的2倍减去第三个烽的4倍为-14,求这个三位数。

147、父子二人,已知儿子年龄不大于40岁,父亲年龄不大于100岁,10年前父亲的年龄是儿子年龄的4倍,10年后父亲的年龄是儿子年龄的整数倍。问父子现年多少岁。

148、前N个自然数排成一串: X1,X2,X3.....Xn先取出x1,将x2,x3移到数串尾,再取出x4,将x5,x6移到数串尾,....... 类推直至取完.取出的序列恰好是:1,2,3......n要求输入N,求原来的数串的排列方式.

149、有M个猴子围成一圈,每个有一个编号,编号从1到M。打算从中选出一个大王。经过协商,决定选大王的规则如下:从第一个开始,每隔N个,数到的猴子出圈,最后剩下来的就是大王。要求:从键盘输入M,N,编程计算哪一个编号的猴子成为大王。

150、围绕着山顶有10个洞,狐狸要吃兔子,兔子说:‚可以,但必须找到我, 我就藏身于这十个洞中,你从10号洞出发,先到1号洞找,第二次隔1个洞找,第三次隔2个洞找,以后如此类推,次数不限。‖但狐狸从早到晚进进出出了1000次,仍没有找到兔子。问兔子究竟藏在哪个洞里?

151、输入一个二进制小数,无需判错,请转换成十进制输出。并保留四位小数位。

输入样例:0.11 输出样例:0.7500

152、纯粹素数是这样定义的:一个素数,去掉最高位,剩下的数仍为素数,再去掉剩下的数的最高位,余下的数还是素数。这样下去一直到最后剩下的个位数也还是素数。求出所有小于3000的四位纯粹素数。

153、求n个最小的连续合数。合数是除了1和本身以外还有其它因子的正整数。 输入样例:3 输出样例: 8 9 10

1、从键盘输入一个正整数,是偶数输出‚yes‛,否则输出‚no‛。

155、从键盘输入一个正整数N(1<=N<=30000),求1到N的和。 156、输入一个正整数N(1<=N<=200),如果是素数则输出‚TRUE‛,否则输出‚FALSE

157、输入两个正整数a,b(1<=a<=b<=1000),输出它们的最大公约数和最小公倍数。如:输入4 6,输出2 12。

158、大家熟知鸡兔同笼问题,输入两个数a,b,a为脚的只数,b为头的个数。编程序输出鸡的只数和兔的只数。

159、将1~9这9 个数字分成三组(每个数字只能使用一次),分别组成3个三位数,且这三位数的值构成1:2:3的比例,试求出所有满足条件的3个三位数。

160、编写程序,任意输入一个三位正整数,然后倒序输出。比如输入的是285 ,输出的就该是582。

161、请看图3-2,判断任意一点A(x,y)是否在圆环内。如果在圆环内输出True,否则输出False。使用输Y 入语句获取X,Y的值。提示:首先推导出判别式为 2<=x2+y2<=25

x O 162、编写程序输入一个任意的正实型数,输出它的平方及平方根,立方及立方根。 (x,y) 提示:求立方根公式为x1/3=e1/3lnx

163、某服装店对售货员发放奖金的办法是:日营业额在1000元以下的,只能拿到基本工资,没有奖金;超过1000元的,奖金为超出部分的2%。编写程序输入营业额,计算并输出奖金。

1、编写程序计算y的值。

Sqrt(a+b)+sin(a-b) a>0,b>0 Y= 1 a=0,b=0 a2+b2 其他

165、从键盘输入三个整数,输出最大数max和最小数min。

166、输入年号、月份,输出该月的天数。

1、3、5、7、8、10、12月为31天,4、6、9、11月为30天,2月平年28天,润年29天。润年判别式为:(y mod 4=0) and (y mod 100<>0) or (y mod 400=0)

167、模拟一个有加、减、乘除运算的简单计算器。当输入一个实型数,再输入一个运算符,再输入一个实型 数后马上输出运算结果。比如:输入3.5*4.0后程序运行结果应该是14.0。

168、求n!(即1*2*..*n),n由键盘输入。分别用for和while 两种循环实现。

169、求1-1/2+1/3-1/4…+1/99-1/100的值。

170、求圆周率π≈1-1/3+1/5-1/7+…+(-1)n-11/(2n-1),求π的近似值,真到某项的绝对值小于10-6为止。

177、利用双重循环编写出打印出右边数字方阵的程序。

1 2 3 4 5 6 2 3 4 5 6 7 3 4 5 6 7 8 5 6 7 8 9 10 6 7 8 9 10 11

178、求e的近似值:e≈1+1/1!+1/2!+1/3!+…+1/n!,当某项小于10-5时停止。

179、编写程序,打印出100~200之内的全部素数。

180、给出一个正整数,求出它的因子,并按下面的格式打印出来: 15=3*5,20=2*2*5,28=2*2*7

181、找出1~1000之间的全部‚水仙花数‛。‚水仙花数‛是这样一个整数,它的每一位数字的立方之和正好等于这个三位数,例如153是‚水仙花数‛,因为13+53+33=153。

182、找出1~100之间的全部‚同构数‛。‚同构数‛是这样一种数:它出现在它的平方数的右端。例如:5的平方是25,5就是同构数,25也是构数。

183、猴子分苹果》趣味程序设计:傍晚,五只猴子在树林里发现一堆苹果,约定第二天早上再来平分,于是各自回去睡觉。半夜一只猴子醒来,把苹果平分了五分,发现多出一个苹果。给谁都不合适,又不能扔掉,只好自己吃了,然后它把其中一堆藏了起来,剩下的四堆又混在一起,高高兴兴地睡觉去了。过了一会,又有一只猴子醒来,它和第一只猴子一样,把苹果平分了五份,发现多出一个苹果,给谁都不合适,又不能扔掉,只好自己吃了,然后它把其中一堆藏了起来,剩下的四堆又混在一起,也去睡觉了。这一夜五只谗嘴的猴子都没睡塌实,五只

猴子都以同样的办法把苹果分一次。第二天早上,五只猴子起来看着变少了的苹果各自心照不宣,它们一起把苹果分了五份,正好一个不多一个不少。请编写程序计算出一开始总共有多少苹果。

184、编程打印出三角形九九乘法表。

185、编写程序打印右图。

1

1 2 1

1 2 3 2 1

1 2 3 4 3 2 1 1 2 3 4 5 4 3 2 1

1 2 3 4 5 6 5 4 3 2 1

186、编程打印出右图

1 2 3

4 5 6 7 8 9 10 11 12 13 14 15

187、按下述格式输出杨辉三角形:

1

1 1

1 2 1 1 3 3 1 1 4 6 4 1

188、已知某班学生6人,输入他们的语文、数学、英语三门课程考试成绩,求出每个学生的平均成绩,并排名次。

1、解数学灯迷,有以下算式:

A B C D - C D C -------------- A B C

A,B,C,D均为一位非负整数,要求找出A,B,C,D的值,请编程序。

190、任意输入两个正整数,求他的最大公约和最小公倍数。

191、已知三角形的三条边长为a,b,c,求三角面积。

提示:用海式求三角形面积s=sqrt(p*(p-a)*(p-b)*(p-c)) p=(a+b+c)/2

192、用筛法求1 到10000的素数。

193、开灯问题。

有从1到n依次编号的n个人和n盏灯。我号人将所有的灯都关掉;2号人将编号为2的倍数的灯都打开;3号人则将编号为3的倍数的灯作相反处理;以后的人都将凡是自己编号的倍数的灯作相反处理。问第n个人操作后,哪些灯是打开的?

194、12个小朋友手拉手站成一个圆圈,从某一个小朋友开始报数,报到7的那个小朋友退到圈外,然后他的下一位重新报‚1‛。这样继续下去,最后只剩下一个小朋友,他原来站在什么位置上呢?

195、2m ,3n |m>=1,n>=1}中由小到大排列的前70项数。

196、运动会连续开了n天,一共发了m枚奖章,第一天发1枚并剩下(m-1)枚的1/7,第二天发2枚并剩下的1/7,以后每天按此规律发奖章,在最后一天即第n天发了剩下的n枚奖章。问运动会开了多少天?一共发了几枚奖章?

197、设有如图所示的3n+2个球互连,将自然数1-3n+2分别为这些球编号,

使如图相连的球编号之差的绝对正好是数列1,2,……,3n+2中各数。

②─⑥ ②─⑨─⑤ ②─⑿─⑤─⑨ │ │ │ │ │ │ │ │ │ ①─⑧─④─⑤ ①─⑾─④─⑧─⑦ ①─⒁─④─⑾─⑦─⑧ │ │ │ │ │ │ │ │ │ ③─⑦ (n=2) ③─⑩─⑥ (n=3) ③─⒀─⑥─⑩ (n=4)

198、递归法判断所输入的一行字符是否回文。这里所说的回文是指输入的一行字符,

以―-‖字符为中心,其两边的字符是左右对称的。例如: 输入:ABCDE-EDCBA ↓

输出:It is symmetry. {输入一行字符是回文}

199、三个齿轮啮合。如图在齿轮箱里 三个齿轮互相衔接,某瞬间两对齿相遇,问各转 多少圈后,这两对齿同时重逢。如图示。 (说明:用a,b,c分别表示三个齿轮的齿数。)

200、设有一个数组A:array [0..N-1] of integer; 存放的元素为0~N-1(1A[0]编码为0;

A[i]编码为:在A[0],A[1],…,A[i-1]中比A[i]的值小的个数 (i=1,2,…,N-1)

∴上面数组A的编码为:B=(0,0,0,3,1,2) 要求编程解决以下问题:

(1)给出数组A后,求出其编码;

(2)给出数组A的编码后,求出A中的原数据 程序样例: 例一:

输入:Stat=1 {表示要解决的第(1)问题} N=8 {输入8个数} A=1 0 3 2 5 6 7 4 输出:B=0 0 2 2 4 5 6 4 例二:

输入:Stat=2 {表示要解决的第(2)问题} N=7

B=0 1 0 0 4 5 6 输出:A=2 3 1 0 4 5 6

201、求2至N(2≤N≤500)之间的素数。例如:

输入:N=100

输出: 2 3 5 7 11 13 17 19 23 29 31 37 41 43 47 53 59 61 71 73 79 83 97

total=24 {表示2至100之间的素数有24个}

202、矩阵相乘:已知N〓M1矩阵A和M1〓M矩阵B(1≤M、M1、N≤10),求矩阵C(=A〓B)。例如:

输入:N,M1,M=4 3 4 A= 1 2 3 3 4 5 提示:所谓矩阵相乘(如A〓B=C),是指

4 5 6 Cij= ∑(Aik〓Bkj)(i=1~N,j=1~M1,k=1~M) 5 –1 –2 B= 1 6 4 2 例如:

2 3 4 1 C11=A11〓B11+A12〓B21+A13〓B31 –1 5 7 –3 =1〓1+2〓2+3〓(– 1)

输出:C= 2 27 33 –5 =2 6 55 63 –5 C42= A41〓B12+A42〓B22+A43〓B32 8 69 78 –5 =5〓6+(–1)〓3+(–2)〓5

5 17 2 15 =17

203、输入N(2≤N≤100)个数字(在0与9之间),然后统计出这组数中相邻

两数字组成的链环数字对出现的次数。例如: 输入:N=20 {表示要输入数的数目}

0 1 5 9 8 7 2 2 2 3 2 7 8 7 8 7 9 6 5 9

输出:(7,8)=2 (8,7)=3 {指(7,8)、(8,7)数字对出现次数分别为2次、3次) (7,2)=1 (2,7)=1 (2,2)=2

(2,3)=1 (3,2)=1

204、生成一个按蛇形方式排列自然数1,2,3,4,5,……,N2的 (1输入:N=4 N=7

输出: 1 3 4 10 1 3 4 10 11 21 22 2 5 9 11 2 5 9 12 20 23 34 6 8 12 15 6 8 13 19 24 33 35 7 13 14 16 7 14 18 25 32 36 43 15 17 26 31 37 42 44 16 27 30 38 41 45 48 28 29 39 40 46 47 49

三、算法设计题

筛选法

205、不相同的余数问题,即‚秦王暗点兵‛或‚韩信点兵‛:

206、有一楼房的楼梯级数很奇特,一步跨二级多一级,一步跨三级多二级,如果分用四、五、六、七去除级数分别余三、三、五、五。问这楼房共有多少级阶梯?(已知不超过400级)。

207、狼追兔子,兔子躲进了10个环形分布的洞的某一个中。狼在第1个洞中没有找到兔子,就间隔1个洞,到第3个洞中去找,也没找到兔子,就间隔2个洞,到第6个洞中去找。以后狼每次多隔1个洞去找兔子,……。这样狼一直找不到兔子。请问兔子可能躲在哪个洞中?

208、作800—1000的素数表。

答案:809 811 821 823 827 829 839 853 857 859 863 877 881 883 887 907 911 919 929 937 941 947 953 967 971 977 983 991 997

209、一位数学家和一些游客共81人不幸落入强盗手中,强盗把俘虏排成一队,宣布每天处理所有第2的N次方个俘虏(N>=0),而只放走剩下的最后一个。由于数学家身怀重任,不得不选择了一个恰当的位置而最终被放走。请问他归初排在第几个位置。 答案:80

210、有一堆礼物,工作人员无论是分成二个一份,还是三个、四个、五个、六个一份,总是多一个。请问这堆礼物至少多少个? 答案:61 211、一付扑克中拿出所有的黑桃A……K按顺序排好。第一次翻出第一张牌——A,放在一边,再拿出第二张放到牌的最下面。以后每次都翻出一张牌,再把一张牌放到最后,问第八次翻出的牌是哪一张? 答案:4

递归

212、有一个数列N,已知:N(1)=1,N(X)=N(X-1)*3-1(X>1),求N(100); 打印‘A’、‘B’、‘C’、‘D’、‘E’这五个字符任意排列的所有情况。

213、从键盘输入一个正整数N,求把它分解成若干个小于等于N的正整数之和的所有情况。

214、求N!(阶乘)。

215、梵塔问题:有三个塔柱(以A,B,C表示)。在A上有一个干塔,共N层。今以一个圆盘代表一层,在盘在下,小盘在上。要求将塔从A移动到C。按规定,每次只能移动一个盘子,可以将盘子放在三个塔柱中任一个上,但大盘子不能放在小盘子上面。试编程序打印出移塔过程。

216、验证卡布列克常数,对于一个四位数N,进行下列运算:(1)将组成该四位数的4个数字由大到小排列,形成由这4个数字组成的最大的四位数;(2)将组成该四位数的4个数字由小到大排列,形成由这4个数字组成的最小的四位数(如果高位为0则取得的数不足4位);(3)求两个数的差,得到一个新的四位数(高位0保留),称为对N进行了一次卡布列克运算。有这样的规律:对一个各位数字不全相同的四位数重复进行若干次卡布列克运算,最后得到的结果总是6174。这个数被称为卡布列克常数。N从键盘输入。输出每一次的卡布列克运算及得到6174时的运算次数。

217、对任意自然数N,将其拆分为若干个自然数之和。

218、有一楼梯共有N级,现在从第1级开始,每步可以走1级,也可以走2级、3级,问共有多少种走法并打印所有走法。

219、快速排序法:把数组中的N个数进行快速排序。N及N个数从键盘输入。

220、楼梯有N级台阶,上楼可以一步上一级,也可以一步上两级,请编一递归程序,打印出所有从第1级上到第N级的走法。提示:S(N)=S(N-1)+S(N-2)。

mC221、编一递归程序,求组合数n 。

mmm1CCCnn1n1 已知:

222、一个凸N边形,通过N边形内部互不相交的对角线,把N边形拆分成若干

个三角形,不同拆分方案的数目用H(N)表示。已知递归函数如下: H(N+1)=H(2)*H(N)+H(3)*H(N-1)+……+H(N)*H(2),(为什么?) H(2)=1。请编写计算H(N)的递归程序。

223、阿克曼函数(ACKMANN)A(X,Y)中,X、Y定义域是非负整数,函数值定义为:

A(X,Y)=Y+1 (X=0)

A(X,0)=A(X-1,1) (X>0,y=0) A(X,Y)=A(X-1,A(X,Y-1)) (X,Y>0) 设计一个递归程序,求A(X,Y)。

223、某人写了N封信和N个信封,结果所有的信都装错了信封。求共有多少种

情况。提示:

D(N)=(N-1)*(D(N-1)+D(N-2)), D(1)=0,D(2)=1。为什么?

224、编写一个程序,生成1,2,3,4,5五个数字的全排列。

225、编写一个程序,生成1,2,3,4,5,6六个数字中任选出四个数字的全排

列。

回溯法

226、八皇后问题:在一个8X8的国际象棋棋盘上放置8个皇后,使它们不能互

相攻击(即任意两个皇后不能在同一行、同一列或同一对角线上)。试求出所有方法。

227、分派整数1、2、3……8给以下各方框,并保证没有两个相邻的方框(垂直相邻,斜对角相邻或水平相邻)含有连续的整数。写一个程序,找出所有的分派方案。 228、在一个NXN的方格网上从某一点(I,J)开始,沿水平、垂直或对角线向前进,最后回到(I,J),形成一个不相交的封闭的折线,设此封闭折线不与方格网的边界相交,求此封闭折线所围成的面积。面积的计算方法是统计折线上以及它所围成的封闭区域中的水平线与垂直线交点的数目。如图中围住了41个点(包括折线本身上的点),因而面积为41。

输入格式:文件读入,格式如下(定义走法:U向上,D向下,L向左,R向右,UL、UR、DL、DR依次累推): 5 2 表示起点为(5,2) R 2 表示向右走三点 DR 2 表示向下右走三点 D 3 表示向下走四点 L 1 表示向左走一点 D 2 表示向下走二点 229、有一个由N个数组成的序列,有0,1两种数,要求在任一个数前1的个数不得超过0的个数,求出所有这样的序列。

以下列方式向5X5矩阵中填入数字。设数字I(1<=I<=25)已被置于座标位置(X,Y),则数字I+1的座标位置应为(E,W),(E,W)可根据以下关系由(X,Y)算出: (1)(E,W)=(X〒3,Y); (2)(E,W)=(X,Y〒3); (3)(E,W)=(X〒2,Y〒2)。

编写一个程序,当数字1被指定于某个起始位置时,列举出其它24个数字应在的位置;列举出该条件下的所有可能方案,输出所有可能的情况。

230、编一程序,从键盘输入数字R,计算机自动检查在下列算式的‚()‛中能否填上‚+‛或‚-‛号凑成相应的等式。如能凑成,则打印出这些算式。如不能则打印‚NO ANSWER‛。

1( )2( )3( )4( )5( )6( )7( )8( )9=R

231、有NXM张邮票边在一起,但其中某一张被挖掉了。如下图就5X4的邮票的形状和编号,其中第11张被挖掉了,现在要求从这些邮票中撕出4张连在一起的邮票,请打印出所有答案。 1 2 3 4 5 6 7 8 9 10 12 13 14 15 16 17 18 19 20 输入格式: 5 4 表示5行4列 3 3 表示第3行第3列的邮票被撕掉了,如果输入0 0则表示没有撕掉邮票。

输出格式

1-2-3-4 以下若干行为各种方案 1-5-9-13 5-9-13-17 1-5-6-7 1-6-7-10 ……

四、编程提高题

232、给出一个自然数N(1<=N<=15,且N为奇数),要求找出这样的N个连续的正整数,使得前(N+1)/2个正整数的平方和,等于后(N-1)/2个正整数的平方和。

例如:当N=5时

满足条件的5个正整数为:10,11,12,13,14 且102+112+122=132+142 输入:N

输出:满足条件的N个正整数

234、给出一个正整数N(N<=32767),要求将其分解成质因子的连乘积。 例如:当N=24时

结果为:24=2*2*2*3(A) 又如;当N=13时

输出结果为:13=13 (B) 输入:N

输出:如(A)或(B)格式的结果

235、输入N和一组整数(以0结束),N表示编号1,2,…,N的箱子,一组整数表示零件的重量(单位为G)。现要求将一批零件,分别装入编号为1,2,…,N的N只箱子中去,装入的方法是:

0G< 零件重量<100G 装入1号箱 100G<=零件重量<150G 装入2号箱 150G<=零件重量<200G 装入3号箱

…… ……

以此类推。装完之后,要求找出哪只箱子中的零件个数最多,若有相同的最多则要求全部列出(仅列出箱子的号数即可),若因零件太重无箱子可装,也应输出这类零件的个数。

236、编制一个乘法运算的程序从键盘读入2个100以内的正整数,进行乘法计算并输出。

例如:输入格式: ,13 又如:

输出格式: × 13 267 0 1157

输入格式:16, 8 输出格式: 16

× 8 128

237、输入三个自然数N,I,J(1<=I<=N,1<=J<=N)。N表示有一个N行N列的棋

盘格子,(I,J)表示棋盘中格子的位置。如:N-4,I-2,J-3表示了棋盘中的第二行第三列的格子。

如下图:

第一列 第二列 第三列 第四列

第1行 第二行 (2,3) 第三行

第四行

要求编制一个程序,根据输入的N,I,J的值,输出与格子(I,J)在同一行、同一列、同一对角线上的所有各自位置。

例如:当N=4,I=2,J=3时,输出的结果是: (2,1)(2,2)(2,3)(2,4) {同一行上格子的位置} (1,3)(2,3)(3,3)(4,3) {同一列上格子的位置} (1,2)(2,3)(3,4) {左上到右下对角线上的格子位置} (4,1)(3,2)(2,3)(1,4) {左下到右上对角线上的格子位置}

238、问题描述:给出一个正整数N(1≤N≤100),即可得到一个由N 个正整数组成的从1开始的如下数列:1,2,3,4,……N-2,N-1,N,且可求出从1开始的这N个数的全部各个数位上的数字之和。 例如:当N=12时,这12个数是:1,2,3,4,5,6,7,8,9,10,11,12。

则这12个数的数字之和为: S=1+2+3+4+5+6+7+8+9+1+0+1+1+1+2=51

239、问题描述:

输入两个真分数的分子与分母(分子与分母的值均不大于3000),对这两个分数进行加法计算。若符合条件,则应将计算的结果化为带分数。

例如: 输入 输出 2, 5

2,3 1+1/15(带分数的表达形式) 3,8 1,8 4/8 (不用约分)

240、问题描述:

键盘输入两个高精度的整数,编程实现这两个高精度整数的减法运算,两数均不会超过240位。要求输出该减法运算的算式与结果。

例如: 输入 输出

99998,9079 99998-9079=90919

123456,345678 123456-345678=-222222 241、求数组元素

问题描述:给出任意一个自然数N(N≤100),输出满足下列条件的数组元素及不同方案数,条件是:

<1>数组元素由各不相同的自然数组成。 <2>数组元素的最后一个元素必为 n 。

<3>每一个数组元素都不小于它前面一个元素的平方( 第一个元素除 )。 <4>数组中包含的元素个数可不相同, 但至少要有一个元素。

例如: n=1 数组(1)

k=1 (以 k 记录不同的方案数) 又如 n=5

数组(5) (1,5) (1,2,5) (2,5) k=4

输入:N(不用判错)

输出:一个整数(不同方案数)

242、所谓丑数,就是那些因子只含2,3,5的数。1,2,3,4,5,6,8,9,10,12,15是最前面的11个丑数。为方便起见,将1也看作是丑数。 请编写一个程序寻找并打印第N个(N<=3000)个丑数。 输入:N

输出:The N'th ugly number is

(其中N用输入数取代,换为对就于N值所计算出的丑数) 输入样例: N=11

输出样例:The 11'th ugly number is 15.

243、找出N位自然数中(N<=8)具有下列性质的数:如果将这个数分为两部分,且位数相等,然后将这两部分相加,所得和的平方,等于原来那个数。从键盘输入N,输出符合性质的数,各数间用空格分隔。

244、字母组合

问题描述:字母A,B,C的所有可能的组合(按字典顺序排序)是:A,AB,ABC,AC,B,BC,C

每个组合都对应一个字典顺序的序号,如下所示: 1 A 2 AB 3 ABC 4 AC 5 B 6 BC 7 C

任务1:找出某个字母组合的字典序号。例如,AC的字典序号是4

任务2:找出该字母组合下的第N个字母组合。例如N=2,即AC的后N个字母组合为BC

输入:输入包括3行

第一行 N 表示字母组合由字母表中前N个字母组成 第二行 K 表示某一字母组合

第三行 M 表示要求输出前N个字母组成组合下的第个M字母组合

输出:输出包括2行

第一行 字母组合K的序号 第二行 第M个字母组合 输入样例:3 AB 6 输出样例:2 BC

245、字符串匹配问题

字符串中只含有括号 (),[],<>,{},判断输入的字符串中括号是否匹配。如果括号有互相包含的形式,从内到外必须是<>,(),[],{},例如。输入: [()] 输出:YES,而输入([]), ([])都应该输出NO

输入:文件的第一行为一个整数n,表示以下有多少个由括好组成的字符串。接下来的n行,每行都是一个由括号组成的长度不超过255的字符串。(input.txt) 输出:在输出文件中有N行,每行都是YES或NO。(output.txt)

246、寻找第K大数 一堆数有N个,我想从大到小排成一排,从中挑出第K大的那个数进行采样分析请你帮忙挑出来。

输入:输入文件的第一行为二个整数N和K,表示整数的个数(N,K<=10000),下面N行每行为一个整数,其值都在(-32768~32767)之间。(input.txt) 输出:输出文件只有一个数,为第K大整数(output.txt)

247、自然数的分解方案数

一个自然数可以写成若干个小于等于自己的自然之和,这叫该自然数的一个分解。不同的分解是表示这个自然数分解成的所有自然数不完全相同。

例如:3=2+1和3=1+1+1表示不同的分解。而3=2+1和3=1+2为相同的分解。 现在的任务是,给出一个自然数,要求所有不同的分解方案数。 输入:输入文件的只有一个自然数N,N<=10000。(input.txt) 输出:输出文件只有一个数,为N的分解方案数。(output.txt) 248、超级素数:一个n位超级素数是指一个n位正整数,它的前1位,前2位, . . . , 前n位均为素数,例如,7331是个4位超级素数,因为7,73,733,7331均为素数。由键盘输入n (n<9), 然后输出全部的n位超级素数。

249、问题描述:一个整数的整数字串是由该整数的连续数位的数字构成。程序名为例如:6158的子串包括6,1,5,8,61,15,58,615,158,6158 任务:找出最大的质数子串

输入:整数N(0<=N<=1000000000)

输出:N的最大质数子串,若所有子串都是非质数,则输出‚No primes‛ 输入样例1: 2319 输出样例1: 31 输入样例2:6804

输出样例2:No primes

250、找出N位自然数中(N<=8)具有下列性质的数:如果将这个数分为两部分,且位数相等,然后将这两部分相加,所得和的平方,等于原来那个数。从键盘输入N,输出符合性质的数,各数间用空格分隔。

251、 我们知道,所谓的卡列列克运算,是指任意一个四位数,只要它们各个位上的数不全相同,就有这样的规律:程序名为step.pas

1. 把组成这个四位数的四个数字由大到小排列,形成由这四个数字构成的

最大的四位数;

2. 把组成这个四位数的四个数字由小到大排列,形成由这四个数字构成的

最小的四位数(如果四个数字中含有0,则此数不足四位); 3. 求出以上两数之差,得到一个新的四位数。 重复以上过程,总能得到最后结果是6174。 试编写一个程序,实现卡布列克运算,要求以下面的格式输出全部运算过程和结果,统计需要运算的步数(如下例为3步)。 输出格式:

n=5346

63-3456=3087 8730-378=8352 8532-2358=6174 SETP=3

252、对于一个五位数a1a2a3a4a5,可将其拆分为三个子数: sub1=a1a2a3 sub2=a2a3a4 sub3=a3a4a5

例如,五位数20207可以拆分成 sub1=202

sub2=020(=20) sub3=207

现在给定一个正整数K,要求你编程求出10000到30000之间所有满足下述条件的五位数,条件是这些五位数的三个子数sub1,sub2,sub3都可被K整除。 输入

输入由键盘输入,输入仅一行,为正整数K(0输出到文件,输出文件的每一行为一个满足条件的五位数,要求从小到大输出。不得重复输出或遗漏。如果无解,则输出‚No‛。

样例 num.in 15

num.out 22555 25555 28555 30000

253、溢出 over.pas 问题描述

写一个程序,读入两个非负整数及一个运算符号判断两整数及运算结果是否超出了PASCAL语言中关于长整数类型的定义。(长整数范围为-21474838到21474837) 输入文件

一行包含整数和运算符,运算符(‘+’,‘-’,‘*’,‘div’) 输出文件

先输出一遍原输入,并在后面输出0到3行适当内容, 如:first number is too big

second number is too big

result number is too big

例如: 输入 输出 300+3 300+3

300000*300000 300000*300000 result is too big

9999999999999999999+1 9999999999999999999+1 first number is too big result number is too big

建议用int来处理,范围大小是

(-92233720368775808 .. 92233720368775807 )

2、请你编一程序实现两种不同进制之间的数据转换。 输入:

输入数据共有三行,第一行是一个正整数,表示需要转换的数的进制n(2≤n≤16),第二行是一个n进制数,若n>10则用大写字母A~F表示数码10~15,并且该n进制数对应的十进制的值不超过1000000000,第三行也是一个正整数,表示转换之后的数的进制m(2≤m≤16)。 输出:

输出仅一行,包含一个正整数,表示转换之后的m进制数。 样例: change.in 16 FF 2

change.out 11111111

255、阶乘问题 也许你早就知道阶乘的含义,N阶乘是由1到N相乘而产生,如: 12! = 1 x 2 x 3 x 4 x 5 x 6 x 7 x 8 x 9 x 10 x 11 x 12 = 479,001,600 12的阶乘最右边的非零位为6。

写一个程序,计算N(1<=N<=50,000,000)阶乘的最右边的非零位的值。

注意:10,000,000!有2499999个零。

输入

仅一行包含一个正整数N。 输出

单独一行包含一个整数表示最右边的非零位的值。 样例 fact.in 12

fact.out 6

256、4位数排列。

任给出4个非0的不同数字,求出由这4个数字组成的所有的4位数。 例如:

输入:3 2 1 6

输出:1 2 3 6 1 2 6 3 1 3 2 6 1 3 6 2 1 6 2 3 1 6 3 2

2 1 3 6 2 1 6 3 2 3 1 6 2 3 6 1 2 6 1 3 2 6 3 1 3 1 2 6 3 1 6 2 3 2 1 6 3 2 6 1 3 6 1 2 3 6 2 1 6 1 2 3 6 1 3 2 6 2 1 3 6 2 3 1 6 3 1 2 6 3 2 1

程序要求:从键盘输入4个不同的非0数字,列出由这4个数字组成的所

有4位数,每行输出6个。 257、圆环上求素数。

将0,1,2,……9共10个数排成一圈(如下图)

0 ⑨ ⑧ ⑦ ⑥ ⑤ ②

③ ④

给出一个取数长度L(1<=L<=5),然后从1开始按顺时针方向连续取L个数字,拼成一个长为L位的数。此时共有9个长为L位的数,然后输出这9个数中的素数。

例如:L=2,此时9个长为L位的数为: 12,23,34,45,56,67,78,,90 其中素数有:23,67, 程序要求:输入:L

输出:全部满足条件的素数。如果没有则输出No

258、求分数和的最小值。 给出一个数字字符串,即字符串中的字符全部为数字,并以字符'$'结束(字符'$'本身不是数字符,仅作为结束符号)。

例如:

'12$','2135$','312456$',……

并设字符串的长度L<=8(包括'$')。

今将数字字符串分成三个部分(分法为任意的),例如: '312456$'可分为'3','124','56'; 或者'31','24','56',……

从上例可看出,当数字串给出之后,分成三部分的分法是许多的(每一部分不能为空),对每一种分法,可以得到三个数和三个分数.

例如:

分法'3','124','56'对应的三个数为3,124,56 对应分数为:1/3,1/124,1/56。

分法'31','24','56'对应的三个数为31,24,56 对应分数为:1/31,1/24,1/56。

程序要求:从键盘输入一个数字串(以'$'作为结束符号)。找出一种分法,使得到的三个分数的和S为最小,输出S的值(精确到小数点后的第6位)。

若给出的数字串中,非0的字符少于3个,则此时不能组成三个数,输出一个'ERROR'。

例如:'12$','100100$'……

259、最大最小差(MaxMin) 问题描述:

现在有N个正整数,每一次去掉其中2个数a和b,然后加入一个数a*b+1,这样最后只剩下一个数P。要求求出最大的P记为MaxP,最小的p记MinP,和他们的差K=MaxP-MinP。

对于给定的数列,编程计算出它的Max,Min和K。 输入文件(MAXMIN.IN):

第一行是数列的长度N(不超过50),以下N行,每行一个正整数(不超过2位)。 输出文件(MAXMIN.OUT):

输出一共三行,每行一个整数,依次为max,min,K。 输入输出样例:

MAXMIN.IN MAXMIN.OUT 2 1 1 2 2 0

260、输入一个英文句子,例如:‚This is a Book.\",可以看到句子是以‚.‛来作为结束符号的,并且单词之间以一个空格来分隔。接着再输入一个单词A,请找出首次在句子中出现的与A$相同的单词,是句子中的第几个单词,若不存在,则输出该句子中单词字符的总个数。

例如对上句子而言,若输入单词‚is‛,则应输出: 2 若输入单词‚isa‛,则应输出:11

261、我们将左右对称的自然数称为回文数,例如:121,4114等; 将只能被1与其本身整除的自然数称之为素数,例如:7,353等。

键入N,M,求出N至M(含N与M)之间既是回文数又是素数的自然数共有多少个?

262、现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的:

1/1 1/2 1/3 1/4 1/5 … 2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … … 我们以Z字形给上表的每一项编号。

1/1 1/2 1/3 1/4 1/5 …

2/1 2/2 2/3 2/4 … 3/1 3/2 3/3 … 4/1 4/2 … 5/1 … …

第1项是1/1,然后是1/2,2/1,3/1,2/2,... 输入:整数N(1<=N<=107) 输出:表中的第N项。 样例:

INPUT N=7

OUT PUT

1/4

263、给出二个任意的正整数N,K(1<=N<=10000,0<=K(1)从N中连续减去2R(R=0,1,2,3,...)

(2)当剩余的数不够减时,则将其加上K,再重复(1)的操作过程。 (3)若剩余的数为0时,则结束操作并输出进行减法的次数。 (4)若存在永远不能减完的情况,则输出信息‚ERROR!‛。 例如:当N=4,K=2时,操作过程如下: 1)4-1=3 减2^0 2)3-2=1 减2^1

由于不够减,所以加K的值2,得:N=1+2=3 3)3-1=2 减2^0 4)2-2=0 减2^1

此时结果为0,则输出:STEP=4(表示进行了4次减法操作运算) 又如:当N=2,K=1时,操作过程如下: 1)2-1=1 减2^0

由于不够下次减,所以加K的值1,得:N=1+1=2 2)2-1=1 减2^0 …………

在这种情况下,永远不能减完,则输出信息‚ERROR!‛

2、生日日期 ( Birthday ) 问题描述:

小甜甜的生日是YY年MM月DD日,他想知道自己出生后第一万天纪念日的日期(出生日算第0天)。 输入格式:

从文件的第一行分别读入YY,MM,DD其中1949<=YY<=2002,日期绝对合法。 输出格式:

输出文件只有一行,即小甜甜生日第一万天以后的日期,格式为 ―YY-MM-DD‖。 样例: BIRTHDAY.DAT 1975 7 15 BIRTHDAY.OUT 2002-11-30

265、 分解因式 ( Factor ) 问题描述:

一个自然数N的正因子个数记为F(N),例如18的所有正因子为1、2、3、6、

9、18,所以F(18)=6。现在给出K,求所有满足F(N)=K的N中最小的数。

输入格式:

从文件读入数据,第一行为K,其中0输出格式:

输出到文件第一行,如果存在不大于20000的解,则输出这个N,否则输出‚NO SOLUTION‛。

样例1: FACTOR.DAT 9 FACTOR.OUT 36 样例2: FACTOR.DAT 17

FACTOR.OUT NO SOLUTION 266、 K好数(K-Good Number) 问题描述:

如果一个自然数N的K进制表示中任意的相邻的两位都不是相邻的数字,那么我们就说这个数是K好数。求L位K进制数中K好数的数目。例如K = 4,L = 2的时候,所有K好数为11、13、20、22、30、31、33 共7个。给定K、L,求L位K好数的数目。

输入格式:

从文件读入数据,第一行为K、L,其中K<=16,L<=10。

输出格式:

将结果输出到 KGOOD.OUT

样例 KGOOD.DAT 4 2 KGOOD.OUT 7 267、Sramoc问题 ( Sramoc Problem ) 问题描述:

Sramoc ( K , M ) 表示用数字0、1、2…、K-1组成的自然数中能被M整除的最小数。给定 K、M,求Sramoc ( K,M )。例如 K=2,M=7的时候,Sramoc( 2 , 7 ) = 1001。

输入格式:

从文件SRAMOC.DAT读入数据。第一行为两个整数K、M满足2<=K<=10、1<=M<=1000。

输出格式:

输出Sramoc(K,M) 到 SRAMOC.OUT。 样例 SRAMOC.DAT 2 7

SRAMOC.OUT 1001 268、 数位和与积

试编写程序求出自然数n的各个数位之和与之积。

输入:文件中的以此存放了若干个自然数 n(n<500000)。 输出:各行依次输出每一个自然数n的各个数位之和与之积。 例如: 输入 92 23 输出 11 18 5 6

269、顺序数串无穷小数

小明构造了一个无穷小数x=0.12345671011…99100101…,其中的数字是依次写下各自然数而得到的。试求出小数点后第m位数字。 输入:文件中每行有一个整数m( m<=20000)。

输出:输出文件中每行有一个数字,存放着小数点后第m位数字。 例如: 输入 4 15 输出 4 2

270、NCL是一家专门从事计算器改良与升级的实验室,最近该实验室收到了某公司所委托的一个任务:需要在该公司某型号的计算器上加上解一元一次方程的功能。实验室将这个任务交给了一个刚进入的新手ZL先生。为了很好的完成这个任务,ZL先生首先研究了一些一元一次方程的实例:

4+3x=8

6a-5+1=2-2a -5+12y=0

ZL先生被主管告之,在计算器上键入的一个一元一次方程中,只包含整数、小写字母及+、-、=这三个数学符号(当然,符号‚─‛既可作减号,也可作负号)。方程中并没有括号,也没有除号,方程中的字母表示未知数。 问题求解

编写程序,解输入的一元一次方程, 将解方程的结果(精确至小数点后三位)输出至屏幕。

你可假设对键入的方程的正确性的判断是由另一个程序员在做,或者说可认为键入的一元一次方程均为合法的,且有唯一实数解。 样 例

输入:

6a-5+1=2-2a 输出:

a=0.750

271、任意给定一个自然数N,寻找一个M,要求M是N的倍数,且它的所有各位数字都是0或1组成,并要求M尽可能小

例如:输入 3 输出 3*37=111

输入 31 输出 31*3581=111011

272、由M个数组成环行,要求输出他们相邻的四个数的最大值和最少值

(输出第一行为最大值,第二行为最少值) 例如: 输入

5

1 2 3 4 5 输出: 14 10

273、方阵填数:在一个NN的方阵中,填入1,2,……NN个数,并要求构成如下的格式:

例:

N=5

13 14 15 16 1 12 23 24 17 2 11 22 25 18 3 10 21 20 19 4 9 8 7 6 5

N=6

16 17 18 19 20 1 15 30 31 32 21 2 14 29 36 33 22 3 13 28 35 34 23 4 12 27 26 25 24 5 11 10 9 8 7 6

274、若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数多于数字0的个数的这类二进制数称为A类数,否则就称其为B类数。 例如:(13)10=(1101)2

其中1的个数为3,0的个数为1,则称此数为A类数; (10)10=(1010)2

其中1的个数为2,0的个数也为2,称此数为B类数; (24)10=(11000)2

其中1的个数为2,0的个数为3,则称此数为B类数; 程序要求:求出1~n之中(包括1与1000),全部A、B两类数的个数。 例如:输入 1

输出A:1 B:0 275、问题描述:

给出n个整数x1,x2,x3,x4..xn,将这n个数从小到大排序为:A1,A2,A3,A4..AN,记数列A1,A2,A3,A4..AN的奇数项之和为P,偶数项之和为Q,令T=|P-Q|

求出T的值。 输入格式:

输入文件的第一行为整数N(1<=n<=50000)。

接下来的N行每行有一个整数,按顺序给出X1,X2,X3,..XN的值(|Xi|<=1000) 输出格式:

输出整数T的值。 输入样例: 3 1 3 2

输出样例: 2

276、破碎的项链

问题描述:你有一条由N个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的。 这里是 n=29 的二个例子:

1 2 1 2 r b b r b r r b r b b b r r b r r r w r b r w w b b r r b b b b b b r b r r b r b r r r b r r r

r r r b r b r r r w 图片 A 图片 B

r 代表 红色的珠子 b 代表 蓝色的珠子 w 代表 白色的珠子 第一和第二个珠子在图片中已经被作记号。 图片 A 中的项链可以用下面的字符串表示: brbrrrbbbrrrrrbrrbbrbbbbrrrrb.

假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个不同的颜色珠子,在另一端做同样的事。(颜色可能与在这之前收集的不同) 确定应该在哪里打破项链来收集到最大多数的数目的子。 Example 举例来说,在图片 A 中的项链,可以收集到8个珠子,在珠子 9 和珠子 10 或珠子 24 和珠子 25 之间打断项链。 在一些项链中,包括白色的珠子如图片 B 所示。 当收集珠子的时候,一个被遇到的白色珠子可以被当做红色也可以被当做蓝色。 表现项链的字符串将会包括三符号 r , b 和 w 。 写一个程序来确定从一条被供应的项链最大可以被收集珠子数目。 PROGRAM NAME: beads

INPUT FORMAT 第 1 行: N, 珠子的数目 第 2 行: 一串度为N的字符串, 每个字符是 r , b 或 w。 SAMPLE INPUT (file beads.in) 29

wwwbbrwrbrbrrbrbrwrwwrbwrwrrb OUTPUT FORMAT

单独的一行包含从被供应的项链可以被收集的珠子数目的最大值。 SAMPLE OUTPUT (file beads.out) 11

277、 骑士问题 问题描述:

在一个标准8*8的国际象棋棋盘上,棋盘中有些格子可能是有障碍物的。已知骑士的初始位置和目标位置,你的任务是计算出骑士最少需要多少步可以从初始位置到达目标位置。有障碍物的格子当然不可以到达。

标准的8*8的国际象棋棋盘中每一个格子可以用唯一的编号确定。行用1-8这个8个数字依次表示,列用‘a‘-‗h‘这8个字母依次表示。例如左下图的骑士所在位置(图中有n的格子)的编号为‚d4‛(注意‘d‘和‘4‘之间没有空格)

我们知道国际象棋中的骑士可以按‖L‖路线移动(一个方向走2个格子接着垂直方向走1个格子)。因此,如左上图中的骑士(位于d4),可以到达位置c2,b3,b5,c6,e6,f5,f3和e2(图中有‘x‘标记的格子)。此外,骑士不能移出棋盘。

骑士可以按照移动规则自由地在棋盘上没有障碍物的格子中移动。右上图给出了一个骑士移动的例子。初始格子用‘n‘标记,目标格子用‘N‘标记,有障碍物的格子用‘b‘标记。一个可行的移动序列在图中用数字标记出来。(a1,b3,a5,c6,e5,g4,h2,f1)。总共需要7步才能完成。事实上,这也就是最小的步数了。 输入格式:

输入文件包括1个或多个测试数据。

每一个测试数据的第一行是一个整数b(-1<=b<=62),表示棋盘中有障碍物的格子数目。当b=-1时,输入文件结束。

第二行含b个不同的有障碍物的格子编号,用空格隔开。当b=0时,此行为空行。

第三行是骑士的初始格子和目标格子的编号,也是用空格隔开。初始格子和目标格子是不同的。且都没有障碍物。 输出格式:

对于每个数据,输出一行。格式:Board n: m moves

其中n表示数据的序号(从1开始)m表示骑士所用的最小的步数。 如果骑士无法到达目标格子,输出:Board n: not reachable 输入样例: 10

c1 d1 c5 c2 c3 c4 d2 d3 d4 d5 a1 f1 0

c1 b3 2

b3 c2 a1 b2 -1

输出样例:

Board 1: 7 moves

Board 2: 1 moves

Board 3: not reachable

278、 集合删数 问题描述:

一个集合有如下元素:1是集合元素;若P是集合的元素,则2 * P +1,4*P+5也是集合的元素,取出此集合中最小的K个元素,按从小到大的顺序组合成一个多位数,现要求从中删除M个数位上的数字,使得剩下的数字最大,编程输出删除前和删除后的多位数字。

注:不存在所有数被删除的情况` 输入格式:

输入的仅一行,K,M的值,K,M均小于等于30000。 输出格式:

输出为两行,第一行为删除前的数字,第二行为删除后的数字。 样例输入: 5 4

样例输出: 137915

279、乒乓球( Table.pas)

【问题背景】国际乒联现在沙拉拉自从上任以来就立志于推行一系列改革,以推动乒乓球运动在全球的普及。其中 11分制改革引起了很大的争议,有一部分球员因为无法适应新规则只能选择退役。华华就是其中一位,他退役之后走上了乒乓球研究工作,意图弄明白 11分制和 21分制对选手的不同影响。在开展他的研究之前,他首先需要对他多年比赛的统计数据进行一些分析,所以需要你的帮忙。

【问题描述】华华通过以下方式进行分析,首先将比赛每个球的胜负列成一张表,然后分别计算在 11分制和 21分制下,双方的比赛结果(截至记录末尾)。 比如现在有这么一份记录,(其中 W表示华华获得一分, L表示华华对手获得一分): WWWWWWWWWWWWWWWWWWWWWWLW

在 11分制下,此时比赛的结果是华华第一局 11比 0获胜,第二局 11比 0获胜,正在进行第三局,当前比分 1比 1。而在 21分制下,此时比赛结果是华华第一局 21比 0获胜,正在进行第二局,比分 2比 1。如果一局比赛刚开始,则此时比分为 0比 0。

你的程序就是要对于一系列比赛信息的输入( WL形式),输出正确的结果。

【输入格式】每个输入文件包含若干行字符串(每行至多 20个字母),字符串有大写的 W、 L和 E组成。其中 E表示比赛信息结束,程序应该忽略 E之后的所有内容。

【输出格式】输出由两部分组成,每部分有若干行,每一行对应一局比赛的比分(按比赛信息输入顺序)。其中第一部分是 11分制下的结果,第二部分是 21分制下的结果,两部分之间由一个空行分隔。(注意,如果比分不差2分,那么就是要接着到,例如当比分是11:10时,此时比赛不应该结束,继续打,直到比分差2分假设打到22:20此时便可以停止) 【输入样例】 WWWWWWWWWWWWWWWWWWWW WWLWE 【输出样例】 11:0 11:0 1:1 21:0 2:1

280、不高兴的津津 【问题描述】

津津上初中了。妈妈认为津津应该更加用功学习,所以津津除了上学之外,还要参加妈妈为她报名的各科复习班。另外每周妈妈还会送她去学习朗诵、舞蹈和钢琴。但是津津如果一天上课超过八个小时就会不高兴,而且上得越久就会越不高兴。假设津津不会因为其它事不高兴,并且她的不高兴不会持续到第二天。请你帮忙检查一下津津下周的日程安排,看看下周她会不会不高兴;如果会的话,哪天最不高兴。 【输入文件】

输入文件unhappy.in包括七行数据,分别表示周一到周日的日程安排。每行包括两个小于10的非负整数,用空格隔开,分别表示津津在学校上课的时间和妈妈安排她上课的时间。 【输出文件】

输出文件unhappy.out包括一行,这一行只包含一个数字。如果不会不高兴则输出0,如果会则输出最不高兴的是周几(用1, 2, 3, 4, 5, 6, 7分别表示周一,

周二,周三,周四,周五,周六,周日)。如果有两天或两天以上不高兴的程度相当,则输出时间最靠前的一天。 【样例输入】 5 3 6 2 7 2 5 3 5 4 0 4 0 6

【样例输出】 3

281、花生采摘(peanuts.pas/dpr/c/cpp) 【问题描述】

鲁宾逊先生有一只宠物猴,名叫多多。这天,他们两个正沿着乡间小路散步,突然发现路边的告示牌上贴着一张小小的纸条:‚欢迎免费品尝我种的花生!——熊字‛。 鲁宾逊先生和多多都很开心,因为花生正是他们的最爱。在告示牌背后,路边真的有一块花生田,花生植株整齐地排列成矩形网格(如图1)。有经验的多多一眼就能看出,每棵花生植株下的花生有多少。为了训练多多的算术,鲁宾逊先生说:‚你先找出花生最多的植株,去采摘它的花生;然后再找出剩下的植株里花生最多的,去采摘它的花生;依此类推,不过你一定要在我限定的时间内回到路边。‛

我们假定多多在每个单位时间内,可以做下列四件事情中的一件: 1) 从路边跳到最靠近路边(即第一行)的某棵花生植株; 2) 从一棵植株跳到前后左右与之相邻的另一棵植株; 3) 采摘一棵植株下的花生;

4) 从最靠近路边(即第一行)的某棵花生植株跳回路边。 现在给定一块花生田的大小和花生的分布,请问在限定时间内,多多最多可以采到多少个花生?注意可能只有部分植株下面长有花生,假设这些植株下的花生个数各不相同。

例如在图2所示的花生田里,只有位于(2, 5), (3, 7), (4, 2), (5, 4)的植株下长有花生,个数分别为13, 7, 15, 9。沿着图示的路线,多多在21个单位时间内,最多可以采到37个花生。 【输入文件】

输入文件peanuts.in的第一行包括三个整数,M, N和K,用空格隔开;表示花生田的大小为M * N(1 <= M, N <= 20),多多采花生的限定时间为K(0 <= K <= 1000)个单位时间。接下来的M行,每行包括N个非负整数,也用空格隔开;第i + 1行的第j个整数Pij(0 <= Pij <= 500)表示花生田里植株(i, j)下花生的数目,0表示该植株下没有花生。 【输出文件】

输出文件peanuts.out包括一行,这一行只包含一个整数,即在限定时间内,多多最多可以采到花生的个数。

【样例输入1】 6 7 21

0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 7 0 15 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 【样例输出1】 37

【样例输入2】 6 7 20

0 0 0 0 0 0 0 0 0 0 0 13 0 0 0 0 0 0 0 0 7 0 15 0 0 0 0 0 0 0 0 9 0 0 0 0 0 0 0 0 0 0 【样例输出2】 28

282、回文质数

因为151即是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 号是回文质数。

写一个程序来找出范围[a,b](5 <= a < b <= 100,000,000)间的所有回文质数; PROGRAM NAME: pprime INPUT FORMAT

第 1 行: 二个整数 a 和 b . SAMPLE INPUT (file pprime.in) 5 500

OUTPUT FORMAT

输出一个回文质数的列表,一行一个。 SAMPLE OUTPUT (file pprime.out) 5 7 11 101 131

151 181 191 313 353 373 383,

283、你要乘坐的飞碟在这里

一个众所周知的事实,在每一慧星后面是一个不明飞行物UFO。 这些不明飞行物时常来收集来自在地球上忠诚的支持者。 不幸地,他们的空间在每次旅行只能带上一群支持者。 他们要做的是用一种聪明的方案让每一个团体人被慧星带走。 他们为每个慧星起了一个名字,通过这些名字来决定一个团体是不是特定的慧星带走。 那个相配方案的细节在下面被给出;

你的工作要写一个程序来通过团体的名字和彗星的名字来决定一个组是否应该与在那一颗慧星后面的不明飞行物搭配。

团体的名字和慧星的名字都以下列各项方式转换成一个数字: 这个最后的数字代表名字中所有字母的信息,\"A\" 是 1 和 \"Z\" 是 26。 举例来说,团体 \"USACO\" 会是 21*19*1*3*15=17955 。 如果团体的数字 mod 47 等于慧星的数字 mod 47,那么你要告诉这个团体准备好被带走 !

写一个程序读入慧星的名字和团体的名字,如果搭配打印\"GO\"否者打印\"STAY\" 团体的名字和慧星的名字将会是没有空格或标点的一串大写字母(不超过6个字母), Examples: Input Output COMETQ GO HVNGAT ABSTAR STAY USACO PROGRAM NAME: ride INPUT FORMAT

第 1 行: 彗星的名字(一个长度为1到6的字符串) 第 2 行: 团体的名字(一个长度为1到6的字符串) SAMPLE INPUT (file ride.in) COMETQ HVNGAT OUTPUT FORMAT

单独一行包含\"STAR\"或\"GO\". SAMPLE OUTPUT (file ride.out) GO

284、踩气球

每年的六月一号都是儿童节,电视上面都想往常一样都会有一个踩气球的节目,其实规则很简单:在地上放了100个标了数字的气球,即气球上分别标1到100的数字,裁判一声响,两个队员同时开始踩气球,开始每个人的分数都为1分,当他踩破几号球,便将他的分数乘以这个数字,如:甲第一个踩破了41号,乙第一个踩破了56号,他们的分数分别是41分和56分,以此类推。一分钟后,双方停止,其余没踩破的气球被拿走,最后看谁的分数最高便假定是胜者[--非最后确认的,只是暂时认为,假如‚甲‛为暂时的胜者--]

然而,这个结果没有被裁判确认前,先要进行一项活动,就是败者向胜者进行质问,如果发现胜者[甲]说的是假话,则乙胜利,如果胜者[甲]说的是真话,则甲胜利。

譬如,甲说他得了343分,乙说他得了49分,很显然,甲说谎话,因为343的因子只有1、7和49,而49的因子只有1、7、49,故他们踩了重复的球,而这是不可能的,故乙胜利。

但是,如果甲说他得了162分,乙得了81分,虽然162=81乘2,但是,2乘3乘27也可以得162分,故甲说得有可能是真话,故甲胜利。

顺便说一下,如果败者说了假话,则胜者胜利,无论他是否说了真话,譬如,甲说他得了10003分,而乙说他得了10001分,显然,两个人都说了假话,但是我们还是判定甲胜利。

不幸的是,在场的每个人都沉迷于激动人心的比赛,包括裁判没有谁能静下心来计算这么复杂的东西,故要求聪明的你来设计一个程序来判定谁赢得了最后的胜利。

测试数据 输入 343 49 3599 610 62 36 输出 49 610 62

285、输入包括4个部分

1.一部字典,至少有一个单词,最多有100个单词,一个一行 2.单独一行‘XXXXXX’表示字典结束 3.很多单词,一行一个

4.2.单独一行‘XXXXXX’表示输入单词结束

输出:每一个单词都对应输出,这个单词与字典中的某个单词的字母都匹配的单词(很拗口)。例如字典中有abcd,而给你的单词是dcba那么就把abcd输出。如果字典中没有任何的单词与给出的单词匹配的话,那么输出‘NOT A VALID WORD’。当输出完一个单词的全部匹配后,就输出一行‘******’表示结束。 Sample Input tarp given score refund only trap work earn course pepper part XXXXXX resco nfudre aptr sett oresuc XXXXXX

Sample Output score ****** refund ****** part tarp trap ******

NOT A VALID WORD ****** course ******

286、丑数

丑数就是这个数的质因子只有2,3,5,7这四个,除此之外不再含有其它 别的质因子。注意1也被认为是丑数.丑数的前20个为

1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 12, 14, 15, 16, 18, 20, 21, 24, 25, 27, ... 1 <= n <= 5842 输入以0结束

Sample Input 1 2 3 4 11 12 13 21 22 23 100 1000 5842

0Sample Output

The 1st humble number is 1. The 2nd humble number is 2. The 3rd humble number is 3. The 4th humble number is 4. The 11th humble number is 12. The 12th humble number is 14. The 13th humble number is 15.

The 21st humble number is 28. The 22nd humble number is 30. The 23rd humble number is 32. The 100th humble number is 450. The 1000th humble number is 385875. The 5842nd humble number is 2000000000.

287、均分纸牌 [问题描述]

有 N 堆纸牌,编号分别为 1,2,…, N。每堆上有若干张,但纸牌总数必为 N 的倍数。可以在任一堆上取若干张纸牌,然后移动。

移牌规则为:在编号为 1 堆上取的纸牌,只能移到编号为 2 的堆上;在编号为 N 的堆上取的纸牌,只能移到编号为 N-1 的堆上;其他堆上取的纸牌,可以移到相邻左边或右边的堆上。

现在要求找出一种移动方法,用最少的移动次数使每堆上纸牌数都一样多。 例如 N=4,4 堆纸牌数分别为: ① 9 ② 8 ③ 17 ④ 6 移动3次可达到目的:

从 ③ 取 4 张牌放到 ④ (9 8 13 10) -> 从 ③ 取 3 张牌放到 ②(9 11 10 10)-> 从 ② 取 1 张牌放到①(10 10 10 10)。 [输 入]:

键盘输入文件名。文件格式: N(N 堆纸牌,1 <= N <= 100)

A1 A2 … An (N 堆纸牌,每堆纸牌初始数,l<= Ai <=10000) [输 出]:

输出至屏幕。格式为:

所有堆均达到相等时的最少移动次数。 [输入输出样例]

a.in: 4

9 8 17 6

屏慕显示: 3 288、 最短路径 [问题描述]

设有n个城市,依次编号为0,1,2,…,n-1,另外有一个文件保存n个城市之间的距离。当两城市之间的距离等于-1时,表示这两个城市没有直接连接。求指定城市k到每一个城市I(0≤I,k≤n-1)的最短距离。保存数据的文件名从键盘输入。 [输 入]:

键盘输入文件名,文件格式:第一行有两个整数n和k,中间用空格隔开;以下是一个N〓N的矩阵,表示城市间的距离,数据用空格隔开。 [输 出]:

输出至屏幕。格式为:

输出指定城市k到各城市间的距离。 [输入输出样例]

输入:INPUT.TXT 输出:

5 3 60 100 0 10 30 0 40 65 –1 30 40 0 105 –1 –1 65 105 0 10 35 -1 –1 10 0 20 30 –1 35 20 0

2、 背包问题 [问题描述]

从 n 种不同重量、不同价值的物品中选取一部分物品。要求在不超过限定重量 limw 的前提下,使被选取的那些物品的总价值较大。这里约定 limw 不超过 n 种物品的重量总和,也没有一种物品的重量超过 limw ,并且各物品的价值都大于 0 。

设在程序中,n 种物品被顺序编号为 0、1、2、......、n-1。 [输 入]:

从键盘输入物品的种数n和限定重量limw的值,以及各种物品的重量和价值。格式为:

先输入两个整数n和limw,中间用空格隔开;接着输入n行,每行两个整数表示每种物品的重量和价值,数据用空格隔开。 [输 出]:

输出至屏幕。格式为:

输出所选取的那些物品的序号和最大总价值 [输入输出样例]

输入: 输出:

5 20 1 6 1 3 8 2 4

11 3 Total value=11 7 4 4 5

290、 字串变换 (存盘名: st4,本题30分) [问题描述]:

已知有两个字串 A$, B$ 及一组字串变换的规则(至多6个规则): A1$ -> B1$ A2$ -> B2$

规则的含义为:在 A$中的子串 A1$ 可以变换为 B1$、A2$ 可以变换为

B2$ …。

例如:A$='abcd' B$='xyz' 变换规则为:

'abc'->'xu' 'ud'->'y' 'y'->'yz'

则此时,A$ 可以经过一系列的变换变为 B$,其变换的过程为: 'abcd'->'xud'->'xy'->'xyz'

共进行了三次变换,使得 A$ 变换为B$。 [输入]:

键盘输人文件名。文件格式如下: A$ B$ A1$ B1$ \\

A2$ B2$ |-> 变换规则 ... ... /

所有字符串长度的上限为 20。 [输出]:

输出至屏幕。格式如下:

若在 10 步(包含 10步)以内能将 A$ 变换为 B$ ,则输出最少的变

换步数;否则输出\"NO ANSWER!\"

[输入输出样例] b.in: abcd xyz abc xu ud y y yz 屏幕显示: 3

290、税收与补贴问题 问题描述

每样商品的价格越低,其销量就会相应增大。现已知某种商品的成本及其在若干价位上的销量(产品不会低于成本销售),并假设相邻价位间销量的变化是线性的且在价格高于给定的最高价位后,销量以某固定数值递减。(我们假设价格及销售量都是整数)

对于某些特殊商品,不可能完全由市场去调节其价格。这时候就需要以税收或补贴的方式来控制。(所谓税收或补贴就是对于每个产品收取或给予生产厂家固定金额的货币)

问题求解

你是某家咨询公司的项目经理,现在你已经知道对某种商品的预期价格,以及在各种价位上的销售情况。要求你确定对此商品是应收税还是补贴

的最少金额(也为整数),才能使商家在这样一种预期的价格上,获取相对其他价位上的最大总利润。 总利润 = 单位商品利润 * 销量 单位商品利润 = 单位商品价格 – 单位商品成本 (– 税金 or + 补贴) 输 入

输入的第一行为对某种商品的预期价,第二行有两个整数,第一个整数为商品成本,第二个整数为以成本价销售时的销量售,以下若干行每行都有两个整数,第一个为某价位时的单价,第二个为此时的销量,以一行-1,-1表示所有已知价位及对应的销量输入完毕,输入的最后一行为一个单独的整数表示在已知的最高单价外每升高一块钱将减少的销量。

输 出

输出有两种情况:若在预期价上能得到最大总利润,则输出一个单独的整数,数的正负表示是补贴还是收税,数的大小表示补贴或收税的金额最小值。若有多解,取绝对值最小的输出。

如在预期价上不能得到最大总利润,则输出‚NO SOLUTION‛.

样 例 输入 31

28 130 30 120 31 110 -1 –1 15 输出 4

291、乘积最大 问题描述

今年是国际数盟确定的‚2000——世界数学年‛,又恰逢我国著名数学家华罗庚先生诞辰90周年。在华罗庚先生的家乡江苏金坛,组织了一场别开生面的数学智力竞赛的活动,你的一个好朋友XZ也有幸得以参加。活动中,主持人给所有参加活动的选手出了这样一道题目:

设有一个长度为N的数字串,要求选手使用K个乘号将它分成K+1个部分,找出一种分法,使得这K+1个部分的乘积能够为最大。

同时,为了帮助选手能够正确理解题意,主持人还举了如下的一个例子:

有一个数字串:312, 当N=3,K=1时会有以下两种分法:

1) 3*12=36 2) 31*2=62

这时,符合题目要求的结果是:31*2=62

现在,请你帮助你的好朋友XZ设计一个程序,求得正确的答案。

输 入

程序的输入共有两行:

第一行共有2个自然数N,K(6≤N≤40,1≤K≤6) 第二行是一个长度为N的数字串。

输 出

结果显示在屏幕上,相对于输入,应输出所求得的最大乘积(一个自然数)。

样 例 输入 4 2 1231 输出 62

292、单词接龙 问题描述

单词接龙是一个与我们经常玩的成语接龙相类似的游戏,现在我们已知一组单词,且给定一个开头的字母,要求出以这个字母开头的最长的‚龙‛(每个单词都最多在‚龙‛中出现两次),在两个单词相连时,其重合部分合为一部分,例如beast和astonish,如果接成一条龙则变为beastonish,另外相邻的两部分不能存在包含关系,例如at和atide间不能相连。 输 入

输入的第一行为一个单独的整数n(n<=20)表示单词数,以下n行每行有一个单词,输入的最后一行为一个单个字符,表示‚龙‛开头的字母。你可以假定以此字母开头的‚龙‛一定存在.

输 出

只需输出以此字母开头的最长的‚龙‛的长度

样 例 :

输入 5 at touch cheat choose tact a 输出

23 (连成的‚龙‛为atoucheatactactouchoose)

293、字符串编辑

从键盘输入一个字符串(长度<=40个字符),并以字符 ‘.‘ 结束。 例如:‘This is a book.‘ 现对该字符串进行编辑,编辑功能有: D:删除一个字符,命令的方式为: D a 其中a为被删除的字符

例如:D s 表示删除字符 ‘s‘ ,若字符串中有多个 ‗s‘,则删除第一次出现的。

如上例中删除的结果为: ‗Thi is a book.‘ I:插入一个字符,命令的格式为:

I a1 a2 其中a1表示插入到指定字符前面,a2表示将要插入的字符。 例如:I s d 表示在指定字符 ‘s‘ 的前面插入字符 ‗d‘ ,若原串中有多个 ‗s‘ ,则插入在最后一个字符的前面,如上例中: 原 串:‘This is a book.‘ 插入后:‘This ids a book.‘

R:替换一个字符,命令格式为:

R a1 a2 其中a1为被替换的字符,a2为替换的字符,若在原串中有多个a1则应全部替换。

例如: 原 串: ‗This is a book.‘ 输入命令:R o e

替换后的字符串为: ‗This is a beek.‘

在编辑过程中,若出现被改的字符不存在时,则给出提示信息。

294、比赛安排

设有有2 n(n<=6)个球队进行单循环比赛,计划在2 n – 1天内完成,每个队每天进行一场比赛。设计一个比赛的安排,使在2 n – 1天内每个队都与不同的对手比赛。

例如n=2时的比赛安排: 队 1 2 3 4 比赛 1==2 3==4 一天

1==3 1==4

2==4 二天 2==3 三天

295、设有一个n*m方格的棋盘(1≤m,n≤100)。(30%)

求出该棋盘中包含多少个正方形、多少个长方形(不包括正方形)。

例如:当n=2,m=3时

正方形的个数有8个;即边长为1的正方形有6个; 边长为2的正方形有2个。

长方形的个数有10个;

即2*1的长方形有4个;

1*2的长方形有3个;

3*1的长方形有2个;

3*2的长方形有1个。

程序要求:输入:n和m 输出:正方形的个数与长方形的个数

如上例:输入:2 3 输出:8,10

296、将1,2,〃〃〃〃〃〃,9共9个数排成下列形态的三角形。(30%)

a b c d e f g h i

其中:a~i分别表示1,2,〃〃〃〃〃〃,9中的一个数字,并要求同时满足下列

条件:

(1)a(2)b(3)a+b+d+f=f+g+h+i=i+e+c+a=P 程序要求:

根据输入的边长之和P

输出所有满足上述条件的三角形的个数以及其中的一种方案。

297、设有一个N*M(l≤ N≤50, l≤ M≤ 50)的街道(如下图): 北 B(9,5)

西

5 4 3 2 1

* * * * * * * * * * * * 东

1 2 3 4 5 6 7 8 9 南 A(1,1)

规定行人从A(1,1)出发,在街道上只能向东或北方向行走。

如下为N=3,M=3的街道图,从A出发到达B共有6条可供行走的路径:

A6 A7 B(N,M)

A3 A4 A5

A A1 A2

1.A-A1-A2-A5-B 2. A-A1-A4-A5-B 3. A-A1-A4-A7-B 4. A-A3-A4-A5-B 5. A-A3-A4-A7-B 6. A-A3-A6-A7-B

若在N*M的街道中,设置一个矩形障碍区域(包括围住该区域的街道)不让行人通行,如图中用‚*‛表示的部分。

此矩形障碍区域用2对顶点坐标给出,前图中的2对顶点坐标为:(2,2),(8,4),此时从 A出发到达B的路径仅有两条。

程序要求:

任务一:给出N,M后,求出所有从A出发到达B的路径的条数。

任务二:给出N,M,同时再给出此街道中的矩形障碍区域的2对顶点坐标

(X1,y1), (X2,Y2),然后求出此种情况下所有从A出发到达B的路径的条数。

298、将1,2,…,9共9个数分成三组,分别组成三个三位数,且使这三个三位数构成

1:2:3的比例,试求出所有满足条件的三个三位数。

例如:三个三位数192,384,576满足以上条件。

299、用高精度计算出S=1!+2!+3!+…+n!(n≤50) 其中‚!‛表示阶乘,例如:5!=5*4*3*2*1。

输入正整数N,输出计算结果S。

300、任何一个正整数都可以用2的幂次方表示。例如: 137=2^7+2^3+2^0

同时约定方次用括号来表示,即ab 可表示为a(b)。 由此可知,137可表示为: 2(7)+2(3)+2(0) 进一步:7= 22+2+20 (21用2表示) 3=2+20 所以最后137可表示为:

2(2(2)+2+2(0))+2(2+2(0))+2(0) 又如:

1315=210 +28 +25 +2+1 所以1315最后可表示为:

2(2(2+2(0))+2)+2(2(2+2(0)))+2(2(2)+2(0))+2+2(0) 输入:正整数(n≤20000)

输出:符合约定的n的0,2表示(在表示中不能有空格)

301、回文数

若一个数(首位不为零)从左向右读与从右向左读都一样,我们就将其称之为回文数。

例如:给定一个10进制数56,将56加56(即把56从右向左读),得到121是一个回文数。

又如:对于10进制数87:

STEP1:87+78 = 165 STEP2:165+561 = 726 STEP3:726+627 = 1353 STEP4:1353+3531 = 4884 在这里的一步是指进行了一次N进制的加法,上例最少用了4步得到回文数4884。

写一个程序,给定一个N(2<=N<=10,N=16)进制数M,求最少经过几步可以得到回文数。如果在30步以内(包含30步)不可能得到回文数,则输出‚Impossible!‛

样例: INPUT OUTPUT N = 9 M= 87 STEP=6

302、 旅行家的预算

一个旅行家想驾驶汽车以最少的费用从一个城市到另一个城市(假设出发时

油箱是空的)。给定两个城市之间的距离D1、汽车油箱的容量C(以升为单位)、每升汽油能行驶的距离D2、出发点每升汽油价格P和沿途油站数N(N可以为零),油站i离出发点的距离Di、每升汽油价格Pi(i=1,2,…,N)。计算结果四舍五入至小数点后两位。如果无法到达目的地,则输出‚No Solution‛。 样例: INPUT

D1=275.6 C=11.9 D2=27.4 P=2.8 N=2 每升汽油价格油站号I 离出发点的距离Di Pi 1 102.0 2.9 2 220.0 OUTPUT 26.95(该数据表示最小费用)

2.2 303、拦截导弹

某国为了防御敌国的导弹袭击,发展出一种导弹拦截系统。但是这种导弹拦截系统有一个缺陷:虽然它的第一发炮弹能够到达任意的高度,但是以后每一发炮弹都不能高于前一发的高度。某天,雷达捕捉到敌国的导弹来袭。由于该系统还在试用阶段,所以只有一套系统,因此有可能不能拦截所有的导弹。

输入导弹依次飞来的高度(雷达给出的高度数据是不大于30000的正整数),计算这套系统最多能拦截多少导弹,如果要拦截所有导弹最少要配备多少套这种导弹拦截系统。

样例:

INPUT OUTPUT

3 207 155 300 299 170 158 65 6(最多能拦截的导弹数) 2(要拦截所有导弹最少要配备的系统数)

304、 邮票面值设计

给定一个信封,最多只允许粘贴N张邮票,计算在给定K(N+K≤40)种邮票的情况下(假定所有的邮票数量都足够),如何设计邮票的面值,能得到最大值MAX,使在1~MAX之间的每一个邮资值都能得到。

例如,N=3,K=2,如果面值分别为1分、4分,则在1分~6分之间的每一个邮资值都能得到(当然还有8分、9分和12分);如果面值分别为1分、3分,则在1分~7分之间的每一个邮资值都能得到。可以验证当N=3,K=2时,7分就是可以得到的连续的邮资最大值,所以MAX=7,面值分别为1分、3分。

样例:

INPUT OUTPUT N=3 K=2 1 3 MAX=7

305、火车从始发站(称为第1站)开出,在始发站上车的人数为a,然后到达第2站,在第2站有人上、下车,但上、下车的人数相同,因此在第2站开出时(即在到达第3站之前)车上的人数保持为a人。从第3站起(包括第3站)上、下车的人数有一定规律:上车的人数都是前两站上车人数之和,而下车人数等于上一站上车人数,一直到终点站的前一站(第n-1站),都满足此规律。现给出的条件是:共有N个车站,始发站上车的人数为a,最后一站下车的人数是m(全部下车)。试问x站开出时车上的人数是多少? 输入:a,n,m和x

输出:从x站开出时车上的人数。

306、设有n个正整数(n≤20),将它们联接成一排,组成一个最大的多位整数。 例如:n=3时,3个整数13,312,343联接成的最大整数为:34331213 又如:n=4时,4个整数7,13,4,246联接成的最大整数为:7424613 程序输入:n n个数

程序输出:联接成的多位数

307、.著名科学家卢斯为了检查学生对进位制的理解,他给出了如下的一张加法表,表中的字母代表数字。

例如:

+ L K V E L L K V E K V K V E E

其含义为:

L+L=L,L+K=K,L+V=V,L+E=E K+L=K,K+K=V,K+V=E,K+E=KL E+E=KV

V E KL E KL KK KL KK KV ……

根据这些规则可推导出:L=0,K=1,V=2,E=3

同时可以确定该表表示的是4进制加法

程序输入:

n(n≤9)表示行数。

以下n行,每行包括n个字符串,每个字串间用空格隔开。(字串仅有一个为‘+’号,其它都由大写字母组成)

程序输出:

① 各个字母表示什么数,格式如:L=0,K=1,…… ② 加法运算是几进制的。

③ 若不可能组成加法表,则应输出‚ERROR!‛

308、在N*N的棋盘上(1≤N≤10),填入1,2,…,N*N共N*N个数,使得任意两个相邻的数之和为素数。(30%) 例如:当N=2时,有:

其相邻数的和为素数的有: 1 2 1+2,1+4,4+3,2+3

4 3 当N=4时,一种可以填写的方案如下: 1 2 11 12 16 15 8 5 13 4 9 14 6 7 10 3 在这里我们约定:左上角的格子里必须填数字1。 程序要求: 输入:N;

输出:如有多种解,则输出第一行、第一列之和为最小的排列方案;若

无解,则输出‚NO!‛。

309、代数表达式的定义如下:

字母

a b c 例如,下面的式子是合法的代数表达式:

a;

a+b*(a+c); a*a/(b+c)

下面的式子是不合法的代数表达式:

ab;

a+a*/(b+c);

程序要求:

输入:输入一个字符串,以‚;‛结束,‚;‛本身不是代数表达式中字

符,仅作为结束);

输出:若表达式正确,则输出‚OK‛;若表达式不正确,则输出‚ERROR‛,

及错误类型。

错误类型约定:

1. 式了中出现不允许的字符; 2. 括号不配对; 3. 其它错误。

例如:输入:a+(b); 输出:OK

例如:输入:a+(b+c*a; 输出:ERROR 2

310、骑士游历:

设有一个n*m的棋盘(2≤n≤50,2≤m≤50),如下图,在棋盘上左下角有一个中国象棋马。

(n,m)

(1,1)

马 马走的规则为: (1) 马走日字; (2) 马只能向右走 即如下图如示:

任务1:当n,m输入之后,找出一条从左下角到右上角的路径。

例如,输入:n=4,m=4

(4,4)

(1,1)

输出:路径的格式:(1,1)→(2,3)→(4,4)。若不存在路径,则输出‘NO’ 任务2:当n,m给出之后,同时给出马起点的位置和终点的位置,试找出从起点到终点的所有路径的数目。 例如:(n=10,m=10),(1,5)(起点),(3,5)(终点)

10

9 8 7 6 5 4 3 2

1 2 3 4 5 6 7 8 9 10

输 出:2(即由(1,5)到(3,5)共有2条路径)

输入格式:n,m,x1,y1,x2,y2 (分别表示n,m,起点坐标,终点坐标) 输出格式:路径数目(若不存在从起点到终点的路径,输出0)

311、数制转换

设有一个字符串A$的结构为: A$=‘mp‘ 其中m为数字串(长度<=20),而n,p均为1或2位的数字串(其中所表达的内容在2-10之间)。

程序要求:从键盘上读入A$后(不用正确性检查),将A$中的数字串m(n

进制),以p进制的形式输出。

例如:A$=‘48<10>8‘

其意义为:将10进制数48,转换成8进制数输出。 输出结果为:48<10>=60<8>

312、挖地雷(30分)

在一个地图上有N个地窖(N<=20),每个地窖中埋有一定数量的地雷。同时,给出地窖之间的连接路径。

例如:

V1 V 2 V3 V4 V5 [题目要求]

当地窖及其连接的数据给出之后,某人可以从任一处开始挖地雷,然后可以沿着指出的连接往下挖(仅能选择一条路径),当无连接时挖地雷工作结束。设计一个挖地雷的方案,使某人能挖到最多的地雷。

输入格式: N: (表示地窖的个数)

W1,W2,W3,……WN (表示每个地窖中埋藏的地雷数量) A12…………… . A1N 地窖之间连接路径(其中Aij=1表示地窖i,j

A23…………..A2N 之间是否有通路:通Aij=1,不通Aij==0)

……..

AN-1 N

输出格式:

K1--K2--……….KV (挖地雷的顺序) MAX (挖地雷的数量)

例如:

⑩--------⑧ ④-----⑦-------⑥

其输入格式为: 输出:

5 1 –3 -4 -5

10,8,4,7,6 max=27 1 1 1 0 0 0 0 1 1 1

313、砝码称重(30分)

设有1g、2g、3g、5g、10g、20g的砝码各若干枚(其总重<=1000), 要求:

输入方式:a1 a2 a3 a4 a5 a6

(表示1g砝码有a1个,2g砝码有a2个,…,20g砝码有a6个)

输出方式:Total=N

(N表示用这些砝码能称出的不同重量的个数,但不包括一个

砝码也不用的情况)

如输入:1_1_0_0_0_0 (注:下划线表示空格)

输出:TOTAL=3 表示可以称出1g,2g,3g三种不同的重量。

314、编码问题:

设有一个数组A:ARRAY[0..N-1] OF INTEGER;

数组中存放的元素为0~N-1之间的整数,且A[i]≠A[j](当i≠j时)。

例如:N=6时,有: A=(4,3,0,5,1,2) 此时,数组A的编码定义如下: A[0]的编码为0;

A[i]的编码为:在A[0],A[1],…,A[i-1]中比A[i]的值小的个数(i=1,2,…,N-1)

∴ 上面数组A的编码为: B=(0,0,0,3,1,2)

程序要求解决以下问题:

① 给出数组A后,求出其编码。

② 给出数组A的编码后,求出A中的原数据。

315、灯的排列问题:

设在一排上有N个格子(N≤20),若在格子中放置有不同颜色的灯,每种灯的个数记为N1,N2,……Nk(k表示不同颜色灯的个数)。

放灯时要遵守下列规则:

① 同一种颜色的灯不能分开;

② 不同颜色的灯之间至少要有一个空位置。

例如:N=8(格子数) R=2(红灯数) B=3(蓝灯数)

放置的方法有:

R-B顺序

R R B B B R R B B B R R B B B R R B B B R R B B B R R B B B

B-R顺序

B B B R R B B B R R B B B R R B B B R R B B B R R B B B R R

放置的总数为12种。

数据输入的方式为:

N

P1(颜色,为一个字母) N1(灯的数量) P2 N2 ……

Q(结束标记,Q本身不是灯的颜色)

程序要求:求出一种顺序的排列方案及排列总数。

316、设有一个四层的积木块,1~4层积木块的数量依次为:5,6,7,8

如下图所示放置:

2

8 3 15 4 8 1 5 4 16 3 9 2 14 6 其中,给出第三层与第四层所标示的数字,并已知第三层的数据是由第四层

的数据计算出来的。

计算的方法是:第三层的某个数据A是由第四层相邻的两个数据B,C经过某种计算后产生的:

B

计算所用到的计算符为:+,-,,且无优先级之分(自左向右计算),运算

C A 符最多为2个。

如:3+45=35 54+3=23 可以看出,上图中的第三层的数据是由第四层的数据用以下计算公式计算出来的:

A=BC+B

也就是:8=23+2,15=34+3,……14=26+2 程序要求:

给出第四层与第三层的数据后,将第一、二层的每块积木标上相应的数据,并输出整个完整的积木图及计算公式。

① 输入数据不存在出错的情况,同时也不会超过整数的范围。 ② 计算时可允许出现以下情况:

A=B (即可理解为运算符的个数为零) A=BB+B (即全部由B产生)

317、 问题描述

我们可以用这样的方式来表示一个十进制数: 将每个阿拉伯数字乘以一个以该数字所处位置的(值减1)为指数,以10为底数的幂之和的形式。例如:123可表示为 1*102+2*101+3*100这样的形式。

与之相似的,对二进制数来说,也可表示成每个二进制数码乘以一个以该数字所处位置的(值-1)为指数,以2为底数的幂之和的形式。一般说来,任何一个正整数R或一个负整数-R都可以被选来作为一个数制系统的基数。如果是以R或-R为基数,则需要用到的数码为 0,1,....R-1。例如,当R=7时,所需用到的数码是0,1,2,3,4,5和6,这与其是R或-R无关。如果作为基数的数绝对值超过10,则为了表示这些数码,通常使用英文字母来表示那些大于9的数码。例如对16进制数来说,用A表示10,用B表示11,用C表示12,用D表示13,用E表示14,用F表示15。

在负进制数中是用-R 作为基数,例如-15(十进制)相当于110001(-2进制),并且它可以被表示为2的幂级数的和数:

110001=1*(-2)5+1*(-2)4+0*(-2)3+0*(-2)2+

0*(-2)1 +1*(-2)0

问题求解 设计一个程序,读入一个十进制数和一个负进制数的基数, 并将此十进制数转换为此负进制下的数: -R∈{-2,-3,-4,...,-20}

输 入

输入的每行有两个输入数据。

第一个是十进制数N(-32768<=N<=32767); 第二个是负进制数的基数-R。

输 出

结果显示在屏幕上,相对于输入,应输出此负进制数及其基数,若此基数超过10,则参照16进制的方式处理。

样 例 输入

30000 -2 -20000 -2 28800 -16 -25000 -16 输出

30000=11011010101110000(base -2) -20000=1111011000100000 (base -2) 28000=19180 (base -16) -25000=7FB8 (base -16) 318、方格取数 问题描述

设有N*N的方格图(N<=10,我们将其中的某些方格中填入正整数,而其他的方格中则放入数字0。如下图所示(见样例): 向右 A 1 2 3 4 5 6 7 8 1 0 0 0 0 0 0 0 0 2 0 0 13 0 0 6 0 0 3 0 0 0 0 7 0 0 0 4 0 0 0 14 0 0 0 0 5 0 21 0 0 0 4 0 0 向 6 0 0 15 0 0 0 0 0 下 7 0 14 0 0 0 0 0 0 8 0 0 0 0 0 0 0 0 B

某人从图的左上角的A 点出发,可以向下行走,也可以向右走,直到到达右下

角的B点。在走过的路上,他可以取走方格中的数(取走后的方格中将变为数字0)。

此人从A点到B 点共走两次,试找出2条这样的路径,使得取得的数之和为最大。

输 入

输入的第一行为一个整数N(表示N*N的方格图),接下来的每行有三个整数,前两个表示位置,第三个数为该位置上所放的数。一行单独的0表示输入结束。

输 出

只需输出一个整数,表示2条路径上取得的最大的和。

样 例 : 输 入 8

2 3 13 2 6 6 3 5 7 4 4 14 5 2 21 5 6 4 3 15 2 14 0 0

输 出 67

319、求最长非降子序列。 问题描述:

给定一个由N个正整数组成的序列,从中间删除M个数,剩下的序列非降,要求M最小 (N≤1000)。

输入输出要求:

(1) 从键盘上输入文本文件名(共做3次测试,文件名依次为DATA2_1,DATA2_2,DATA2_3),该文件的第一行为一个整数N(<1000),第二行为用空格隔开的N个整数(范围:-10000至10000)。

(2) 利用文本文件输出结果(文件名:ANS2.TXT),第一行为一个整数M,以后为N-M个有序整数,每行输出10个数)。

320、三车道停车 问题描述:

现有三车道停车, 将每车道的车按车抵达的地点停靠, 现将以车道的车转移出去, 只能从上面转, 即:

车道1: 1232131 车道2: 车道3:

车道1: 123213 车道2: 车道3: 1

车道1: 12321 车道2: 车道3: 13

车道1: 1232 车道2:

车道3: 131

车道1: 123 车道2: 2 车道3: 131

车道1: 12 车道2:2 车道3: 1313

车道1: 1 车道2:22 车道3: 1313

车道1: 1 车道2:223 车道3: 131

车道1: 11 车道2:223 车道3: 13

车道1: 11 车道2:2233 车道3: 1

车道1: 111 车道2:22 车道3: 33

请编一程序进行模拟

321、数的游戏 问题描述:

小红与计算机玩取奇数游戏. 该游戏规则如下: 设计算机为 A 方,小红为 B 方. 小红先输入一个M(3≤M≤7),再输入一个奇数 N(<100) 表示一个盒子有N个棋子. 规定A 方先从盒子中取棋子,以后双方轮流取,每次限取1-M个, 不能不取,也不能多取。最后取到棋子总数为奇数的一方获胜. 编制程序输出使A方有必胜策略的全部的N(N<100),及N的总数。

输入输出要求:

(1) 从键盘上输入M,并判断M是否符合要求。

(2) 在屏幕上输出符合条件的奇数N,每输出10个数换一行。

(3) 最后在屏幕上输出符合条件的N的个数。

322、倒水问题 问题描述:

有两个无刻度标志的水壶,分别可装X升和Y升(X,Y为整数,X,Y≤100)的水。设另有一水缸,可用来向水壶灌水或倒出水,两水壶间,水也可以相互倾灌。已知X升壶为满壶,Y升壶为空壶。问如何通过倒水或灌水操作,用最少步数能在Y升壶中量出Z(≤100)升的水来。

1 323、打印数字宝塔 【例】 输入:9

输出:(右图)

1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1 1 8 28 56 70 56 28 8 1

324、编程实现十进制数与二进制数、八进制数、十六进制数之间的转换,及二进制数与十进制数、八进制数、十六进制数之间的转换。输入三个数,分别为:整数,现进

制数,将转换成的进制数。 【例1】

输入:73,10,2

输出:(73)10=(1001001)2 【例2】

输入:1011011111110011,2,16

输出:(1011011111110011)2=(B7F3)16

325、分母≤N的所有最简真分数的递增序列称为N阶的Faray级数,如5阶的Faray级数为: 0,1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5。 编程,从键盘输入N(N〈10〉,输出N阶的Faray级数。 【例】 输入:5

输出:0,1/5,1/4,1/3,2/5,1/2,3/5,2/3,3/4,4/5

326、如图,一个数字宝塔,从最顶层到第M层(最顶层为0,次顶层为1,……,最底层为8),每次只能走到下一层其左边或右边的数字,输入M(M<9),N,求出: ①走到第M层的所有数字之和为N的途径;

②一条走到第M层的数字之和最大的途径。

7 【例】

4 6 输入:

6 9 3 (M,N):3,23

6 3 7 1 输出:

No.1 7-4-6-6 2 5 3 2 8

5 9 4 7 3 2 No.2 7-4-9-3

6 4 1 8 5 6 3 No.3 7-6-3-7

3 9 7 6 8 4 1 5 Long:29

2 5 7 3 5 7 8 4 2 7-6-9-7 327、奇数数列分组问题

问题描述:如果把奇数数列1,3,5,7,9,11,13,15,17,19,……,按自

然数的数字为项数进行重组,即1;3,5;7,9,11;13,15,17,19;……,则各组内的数字之和刚好是该数所包含的项数的立方和。 例如:(n^3表示n的立方) 1^3=1 2^3=3+5 3^3=7+9+11 4^3=13+15+17+19

……

输入:从键盘输入分组数n的值;

输出:第n组奇数的局部分和及按上述方法分组后的验证表达式和验证结果的真假。 输入示例: n=5 输出示例:

5^3=29+27+25+23+21 TRUE

328、 队列问题 问题描述:一个队列

112123123412345123456123456712345678123456712345671012345671011……

求这个队列中第n位的数字。 输入:通过键盘输入n的大小

输出:通过屏幕输出该队列中的第n个数字。 329、 N的倍数

问题描述: 写一个程序,对于给定的一个自然数N(1≤N≤4999),和M个互不相同的十进制数字X1, X2,…,XM (至少一个), 找出N的一个最小的正的倍数,使得该倍数中没有X1,X2,…,XM 之外的其它数字。 输入格式:

输入文件第一行为整数N,第二行为整数 M,接下来M行 分别列出 数字 X1,X2..XM 。 输出格式:

输出文件输出为这个倍数,如果无解输出0。 约束条件:

在所有的测试数据中答案都不会超过500位。 样例输入: 4999 4 7 6 9 0

样例输出: 60007996

330、Complete Search 枚举搜索 思想:

写枚举搜索时应遵循KISS原则(Keep it simple stupid,译为―写最单纯愚蠢的程序‖,意思是应把程序写得尽量简洁),竞赛时写程序的最终目标就是在时间内求出解,而不需太在意否还有更快的算法。

枚举搜索具有强大的力量,他用直接面向答案并尝试所有方案的方法发现答案。这种算法几乎总是解题时你第一个想到的方法。如果它能在规定的时间与空间内找出解,那么它常常很容易编写与调试。这就意味着你可以有时间去解答其他难题,即那些不能显示枚举算法强大的题目。

如果你面对一道可能状态小于两百万的题目,那么你可以考虑使用枚举搜索。尝试所有的状态,看看它们是否可行。 小心!小心!

有时,题目不会直接要求你使用枚举算法。 例题1:派对灯 [IOI 98]

在一次IOI派对上有N个灯和4个灯开光,第一个开关可以使所有灯改变状态(关上开着的灯,开启关着的灯),第二个开关可以改变所有偶数位上灯的状态,第

三个开关可以改变所有奇数位上灯的状态,第四个开关控制着灯1、4、7、10……(3n+1)。 告诉你N的值和所有按开关的次数(小于10,000次)。并告诉你某些灯的状态(例如:7号灯是关着的,10号灯是开着的)请编程输出所有灯可能的最后状态。 很明显,每次按开关你都要偿试4种可能。那么总共要试 410000 次(大约 106020),那意味着你没有足够的时间去使用枚举搜索,但是我们将枚举方法改进一下,那就可以使用枚举了。因为无论有多少个灯,由于开关控制的特殊性,都会出现6个灯一次循环的情况,即1号灯的状态永远与7号灯,13号灯,19号灯……相同,2号灯的状态也永远与8号灯,14号灯,20号灯……相同。同样,无论你按了多少次开关,按同一个开关两次就相当于没有按该开关,那么每一个开关就只需要考虑按一次或没有按,那么这题的枚举量就很小了。 例题2: 时钟调整 [IOI 94]

有九个钟被摆放在一个3 X 3的矩阵中,它们各自指向12:00,9:00,6:00,3:00中的一种,你的目的是将它们的指针全部调向12:00。很遗憾,每一次调整你都只能从九种调整方案中选择一种执行(九种方案已被从1到9编号),每一种方案可以改变固定钟的状态(例如:方案1控制钟1,2,3,方案2控制钟1,4,7,方案3控制钟5,6,8,9……),即将方案指定的所有钟向前拨快3小时(使时针向顺时针方向旋转90度),请你输出一个数列,使得按该数列表示方案执行后,所有钟都指向12:00。并且如果把整个序列看作一个数,要求该数最小。

最容易想到的方法是用递归枚举1到9的方案在该步使用。很可怕,由于递归的层数在此没有限定,所以将用掉 9k 的时间(k为层数),那可能是相当巨大的。其实,不用紧张,细心的你一定会发现:当一个方案执行4次后,就相当于没有执行,又因为题目要求输出最优解,那么任意一个方案都没有必要4次以上执行。也就是说,只需要枚举每一个方案的4种情况(没执行,执行1,2,3次)就可以了。他仅有49 ,约262,072此枚举,我们的计算机1s内就可以算完,应该算是极快了。 类似问题:

挤牛奶 [USACO 1996 初赛]

给出一个挤牛奶的顺序(农夫 A 在 300 秒到 1000秒时挤牛奶, 农夫 B从 700 秒到 1200秒),要求输出: 最长的有人挤牛奶的时间。 最长的没人挤牛奶的时间。

完全数牛与完全数牛群 [USACO 1995 决赛]

如果一个数可以由它的某几个约数相加得到,那么我们叫它完全数,如28 = 1 + 2 + 4 + 7 + 14。而一对完全对数就是指两个数都可以由对方的约数相加得出。同样一个完全数组就是一个数组的第一个数可以由第二个数的约数加和得到,第二个数也可以由第三个数的约数相加得到……最后一个数可以由第一个数的约数加和得到。

现在Farmer John已经将它的牛儿们编好了号(1到32000)请找出其中所有的完全数牛与完全数牛群。

331、Mixing Milk 混合牛奶

牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变的十分重要。

请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的最廉价的方式取得他们所需的牛奶。

快乐的牛奶制造公司从一些农民那购买牛奶,每个农民卖给牛奶制造公司的价格不一定相同。

而且,如一只母牛一天只能生产一定量的牛奶,农民每一天只有一定量的牛奶可以卖。

每天,快乐的牛奶制造者从每个农民那购买一定量的牛奶,少于或等于农民所能提供的最大值。

给出快乐牛奶制造者的每日的牛奶需求,连同每个农民的可提供的牛奶量和每加仑的价格,请计算快乐的牛奶制造者所要付出钱的最小值。 注意:

每天农民生产的牛奶的总数对快乐的牛奶制造者来说足够的。

332、milk

INPUT FORMAT

第 1 行:二个整数, N 和 M。

第一个数值,N,(0<= N<=2,000,000)是快乐的牛奶制造者的一天需要牛奶的数量。

第二个数值,M,(0<= M<=5,000)是他们可能从农民那买到的数目。 第 2 到 M+1 行:每行二个整数,Pi 和 Ai。 Pi(0<= Pi<=1,000) 是农民 i 牛奶的价格。

Ai(0 <= Ai <= 2,000,000)是农民 i 一天能卖给快乐的牛奶制造者的牛奶数量。 SAMPLE INPUT (file milk.in) 100 5 5 20

9 40 3 10 8 80 6 30

OUTPUT FORMAT

单独的一行包含单独的一个整数,表示快乐的牛奶制造者拿到所需的牛奶所要的最小费用

SAMPLE OUTPUT (file milk.out) 630

332、Barn Repair 修理牛棚

在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了。 好在许多牛正在度假,所以牛棚没有住满。 剩下的牛一个紧挨着另一个被排成一行来过夜。 有些牛棚里有牛,有些没有。 所有的牛棚有相同的宽度。 自门遗失以后,农民约翰很快在牛棚之前竖立起新的木板。 他的新木材供应者将会供应他任何他想要的长度,但是供应者只能提供有限数目的木板。 农民约翰想将他购买的木板总长度减到最少。 给出 M(1<= M<=50),可能买到的木板最大的数目;S(1<= S<=200),牛棚的总数;C(1 <= C <=S) 牛棚里牛的数目,和牛所在的牛棚的编号

stall_number(1 <= stall_number <= S),计算拦住所有有牛的牛棚所需木板的最小总长度。 输出所需木板的最小总长度作为的答案。 PROGRAM NAME: barn1 INPUT FORMAT 第 1 行: M , S 和 C(用空格分开) 第 2 到 C+1行: 每行包含一个整数,表示牛所占的牛棚的编号。 SAMPLE INPUT (file barn1.in) 4 50 18 3 4 6 8 14 15 16 17

21 25 26 27 30 31 40 41 42 43

OUTPUT FORMAT

单独的一行包含一个整数表示所需木板的最小总长度。 SAMPLE OUTPUT (file barn1.out) 25

[ 一种最优的安排是用板拦住牛棚3-8,14-21,25-31,40-43.] 333、二、打保龄球

源程序名 bowling.??? (pas,c,cpp) 可执行文件名 bowling.exe 输入文件名 bowling.in 输出文件名 bowling.out

打保龄球是用一个滚球去打击十个站立的柱,将柱击倒。一局分十轮,每轮可滚球一次或多次,以击倒的柱数为依据计分。一局得分为十轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关。即某轮某次滚球击倒的柱数不仅要计入本轮得分,还可能会计入前一两轮得分。具体的滚球击柱规则和计分方法如下:

(1)若某一轮的第一次滚球就击倒全部十个柱,则本轮不再滚球(若是第十轮则还需

另加两次滚球,不妨称其为第十一轮和第十二轮,并不是所有的情况都需要滚第十一轮和第十二轮球)。该轮得分为本次击倒柱数10与以后两次滚球所击倒柱数之和。

(2)若某一轮的第一次滚球未击倒十个柱,则可对剩下未倒的柱再滚球一次。

如果这

两次滚球击倒全部十个柱,则本轮不再滚球(若是第十轮则还需另加一次滚球),该轮得分

为这两次共击倒柱数10与以后一次滚球所击倒柱数之和。

(3)若某一轮两次滚球未击倒全部十个柱,则本轮不再继续滚球,该轮得分为这两次

滚球击倒的柱数之和。

总之,若—轮中一次滚球或两次滚球击倒十个柱,则本轮得分是本轮首次滚球开始的

连续三次滚球击倒柱数之和(其中有一次或两次不是本轮滚球)。若一轮内二次滚球击倒柱

数不足十个,则本轮得分即为这两次击倒柱数之和。下面以实例说明如下(字符‚/‛表示击倒当前球道上的全部的柱):

轮 1 2 3 4 5 6 7 8 9 10 11 12

击球情况 / / / 72 9/ 81 8/ / 9/ / 8/

各轮得分 30 27 19 9 18 9 20 20 20 20

累计总分 30 57 76 85 103 112 132 152 172 192 现在请你编写一个保龄球实时计分程序,用来计算和显示某轮结束后的得分情况。若某轮的得分暂时无法算出,则该轮得分不显示。 输入:

输入数据用文件bowling.in,文件内容仅有一行,为前若干轮滚球的情况,每轮滚球用一到两个字符表示,每一个字符表示一次击球,字符‚/‛表示击倒当前球道上的全部的柱,否则用一个数字字符表示本次滚球击倒的当前球道上的柱的数目,两轮滚球之间用一个空格字符隔开。

如上例对应的输入文件内容为:/ / / 72 9/ 81 8/ / 9/ / 8/

输出:

输出到文件bowling.out,共两行,第一行为每轮得分,第二行为到当前轮为止的总得分。每个得分之间用一个空格隔开。

样例输入:

/ / / 72 9/ 81 8/ / 9/ / 8/

样例输出:

30 27 19 9 18 9 20 20 20 20

30 57 76 85 103 112 132 152 172 192

334、表达式的转换(难度系数★★★)

源程序名 express .??? (PAS,C,CPP) 可执行文件名 express .exe 输入文件名 express .in 输出文件名 express .out

[问题描述]:

平常我们书写的表达式称为中缀表达式,因为它将运算符放在两个操作数中间,许多情况下为了确定运算顺序,括号是不可少的,而中缀表达式就不必用括号了。

后缀标记法:书写表达式时采用运算紧跟在两个操作数之后,从而实现了无括号处理和优先级处理,使计算机的处理规则简化为:从左到右顺序完成计算,并用结果取而代之。

例如:8–(3+2*6)/5+4可以写为:8 3 2 6*+5/–4+ 其计算步骤为:8 3 2 6 * + 5 / – 4 + 8 3 12 + 5 / – 4 + 8 15 5 / – 4 + 8 3 – 4 + 5 4 + 9

编写一个程序,完成这个转换,要求输出的每一个数据间都留一个空格。 [输入]:

就一行,是一个后缀表达式。输入的符号中只有这些基本符号‚01234567+-*/^()‛,并且不会出现形如2*-3的格式。

表达式中的基本数字也都是一位的,不会出现形如12形式的数字。 所输入的字符串不要判错。

[输出]:

若干个中缀表达式,第I+1行比第I行少一个运算符和一个操作数,最后一行只有一个数字,表示运算结果。 运算的结果可能为负数,‚/‛以整除运算。并且中间每一步都不会超过2^31。

[样例]: express .in 8–(3+2*6)/5+4 express .out

8 3 2 6 * + 5 / – 4 + 8 3 12 + 5 / – 4 + 8 15 5 / – 4 + 8 3 – 4 + 5 4 + 9

335、硬币翻转

在桌面上有一排硬币,共N枚,每一枚硬币均为正面朝上。现在要把所有的硬币翻转成反面朝上,规则是每次可翻转任意N-1枚硬币(正面向上的被翻转为反面向上,反之亦然)。求一个最短的操作序列(将每次翻转N-1枚硬币成为一次操作)。

输入:

输入只有一行,包含一个自然数N(N为不大于100的偶数)。 输出:

输出文件的第一行包含一个整数S,表示最少需要的操作次数。接下来的S行每行分别表示每次操作后桌上硬币的状态(一行包含N个整数(0或1),表示每个硬币的状态:0——正面向上,和1——反面向上,不允许出现多余空格)。

对于有多种操作方案的情况,则只需输出一种。

样例: coin.in 4

coin.out 4 0111 1100 0001 1111

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- shangjiatang.cn 版权所有 湘ICP备2022005869号-4

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务