首页 > 代码库 > 《高级语言程序设计》习题集

《高级语言程序设计》习题集

《高级语言程序设计》习题集

(本资料仅供学生学习使用)

?

?

  1. 求最大数
  2. 借书方案知多少
  3. 杨辉三角形
  4. 数制转换
  5. 打鱼还是晒网
  6. 该存多少钱
  7. 怎样存钱利最大
  8. 出售金鱼
  9. 平分七筐鱼
  10. 有限5位数
  11. 8 除不尽的数
  12. 一个奇异的三位数
  13. 4位反序数
  14. 求车速
  15. 阿姆斯特朗数
  16. 完全数
  17. 亲密数
  18. 回文数
  19. 求素数
  20. 求具有abcd=(ab+cd)2性质的四位数
  21. 歌德巴赫猜想
  22. 百钱百鸡问题
  23. 爱因斯坦的数学题
  24. 换分币
  25. 年龄几何
  26. 三色球问题
  27. 马克思手稿中的数学题
  28. 最大公约数和最小公倍数
  29. 分数比较
  30. 分数之和
  31. 将真分数分解为埃及分数
  32. 列出真分数序列
  33. 计算分数的精确值
  34. 新娘和新郞
  35. 委派任务
  36. 谁在说谎
  37. 谁是窃贼
  38. 邮票组合
  39. 黑与白
  40. 哪个大夫哪天值班
  41. 区分旅客国籍
  42. 谁家孩子跑最慢
  43. 1~9分成1:2:3的三个3位数
  44. 拉丁方
  45. 1~9组成三个3位的平方数
  46. 由8个整数形成奇特的立方体
  47. 减式还原
  48. 九位累进可除数
  49. 约瑟夫问题
  50. 和数能表示1~23的5个正整数
  51. 10个小孩分糖果
  52. 小明买书
  53. 奇数平方的一个有趣性质
  54. 角谷猜想
  55. 卡布列克常数
  56. 四方定理
  57. 自动发牌
  58. 常胜将军
  59. 抢 30
  60. 兎子产子
  61. 人机猜数游戏
  62. 人机猜数游戏(2)
  63. 将阿拉伯数字转换为罗马数字
  64. 选美比赛
  65. 超长正整数的加法

?

?

?

?

?

?

?

?

?

?

?

?

?

?

1求最大数

问555555的约数中最大的三位数是多少?

?

*运行结果

输入:555555

输出:The max factor with 3 digits in 555555 is:777

?

?

2借书方案知多少

小明有五本新书,要借给A,B,C三位小朋友,若每人每次只能借一本,则可以有多少种不同的借法?

?

*运行结果

There are diffrent methods for XM to distribute books to 3 readers:

1: 1,2,3  2: 1,2,4  3: 1,2,5  4: 1,3,2  5: 1,3,4

6: 1,3,5  7: 1,4,2  8: 1,4,3  9: 1,4,5  10:1,5,2

11:1,5,3  12:1,5,4  13:2,1,3  14:2,1,4  15:2,1,5

16:2,3,1  17:2,3,4  18:2,3,5  19:2,4,1  20:2,4,3

21:2,4,5  22:2,5,1  23:2,5,3  24:2,5,4  25:3,1,2

26:3,1,4  27:3,1,5  28:3,2,1  29:3,2,4  30:3,2,5

31:3,4,1  32:3,4,2  33:3,4,5  34:3,5,1  35:3,5,2

36:3,5,4  37:4,1,2  38:4,1,3  39:4,1,5  40:4,2,1

41:4,2,3  42:4,2,5  43:4,3,1  44:4,3,2  45:4,3,5

46:4,5,1  47:4,5,2  48:4,5,3  49:5,1,2  50:5,1,3

51:5,1,4  52:5,2,1  53:5,2,3  54:5,2,4  55:5,3,1

56:5,3,2  57:5,3,4  58:5,4,1  59:5,4,2  60:5,4,3

?

?

3杨辉三角形

在屏幕上显示杨辉三角形

?

1

1 1

1 2 1

1 3 3 1

1 4 6 4 1

1 5 10 10 5 1

..................

?

?

4数制转换

将任一整数转换为二进制形式

?

*运行结果
输入:8
输出:
number of decimal form:8
it‘s bunary form:0000000000001000
输入:-8
输出:number of decimal form:-8

it‘s binary form:1111111111111000

输入:32767

输出:number of decimal form:32767

it‘s binary form:0111111111111111

输入:-32768

输出:number of decimal form:-32768

it‘s binary form:1000000000000000

输入:128

输出:number of decimal form:128

it‘s binary form:0000000010000000

?

?

5打鱼还是晒网

中国有句俗语叫"三天打鱼两天晒网"。某人从1990年1月1日起开始"三天打鱼两天晒网",问这个人在以后的某一天中是"打鱼"还是"晒网"。

*思考题:请打印出任意年份的日历

?

*运行结果
Enter year/month/day:1991 10 25
He was fishing at day.
Enter year/month/day:1992 10 25
He was sleeping at day.
Enter year/month/day:1993 10 25
He was sleeping at day.

?

?

6该存多少钱

假设银行一年整存零取的月息为0.63%。现在某人手中有一笔钱,他打算在今后的五年中的年底取出1000元,到第五年时刚好取完,请算出他存钱时应存入多少。

?

*运行结果
He must save 4039.44 at first

?

?

7怎样存钱利最大

假设银行整存整取存款不同期限的月息利率分别为:

0.63% 期限=1年

0.66% 期限=2年

0.69% 期限=3年

0.75% 期限=5年

0.84% 期限=8年

利息=本金*月息利率*12*存款年限。

现在某人手中有2000元钱,请通过计算选择一种存钱方案,使得钱存入银行20年后得到的利息最多(假定银行对超过存款期限的那一部分时间不付利息)。

*思考题

某单位对职工出售住房,每套为2万元。买房付款的方法是:

一次交清,优惠20%

从第一年开始,每年年初分期付款:

5年交清,优惠50%;

10年交清,优惠10%;

20年交清,没有优惠。

现在有人手中正好有2万元,若假定在今后20年中物价和银行利率均保持不变,问他应当选择哪种付款方式可以使应付的钱最少?

?

*运行结果

For maxinum profit,he should so save his money in a bank:

made fixed deposit for 8 year: 0times

made fixed deposit for 5 year: 4times

made fixed deposit for 3 year: 0times

made fixed deposit for 2 year: 0times

made fixed deposit for 1 year: 0times

Total:8841.01

可见最佳的存款方案为连续四次存5年期。

?

?

8出售金鱼

买卖提将养的一缸金鱼分五次出售系统上一次卖出全部的一半加二分之一条;第二次卖出余下的三分之一加三分之一条;第三次卖出余下的四分之一加四分之一条;第四次卖出余下的五分之一加五分之一条;最后卖出余下的11条。问原来的鱼缸中共有几条金鱼?

*思考题

日本著名数学游戏专家中村义作教授提出这样一个问题:父亲将2520个桔子分给六个儿子。分完后父亲说:"老大将分给你的桔子的1/8给老二;老二拿到后连同原先的桔子分1/7给老三;老三拿到后连同原先的桔子分1/6给老四;老四拿到后连同原先的桔子分1/5给老五;老五拿到后连同原先的桔子分1/4给老六;老六拿到后连同原先的桔子分1/3给老大"。结果大家手中的桔子正好一样多。问六兄弟原来手中各有多少桔子?

?

*运行结果

There are 59 fishes at first.

?

?

9平分七筐鱼

甲、乙、丙三位鱼夫出海打鱼,他们随船带了21只箩筐。当晚返航时,他们发现有七筐装满了鱼,还有七筐装了半筐鱼,另外七筐则是空的,由于他们没有秤,只好通过目测认为七个满筐鱼的重量是相等的,7个半筐鱼的重量是相等的。在不将鱼倒出来的前提下,怎样将鱼和筐平分为三份?

*思考题

晏会上数学家出了一道难题:假定桌子上有三瓶啤酒,癣瓶子中的酒分给几个人喝,但喝各瓶酒的人数是不一样的。不过其中有一个人喝了每一瓶中的酒,且加起来刚好是一瓶,请问喝这三瓶酒的各有多少人?

(答案:喝三瓶酒的人数分别是2人、3人和6人)

?

* 运行结果

It exists possible distribution plans:

No.1 Full basket Semi--basket Empty

fisher A: 1 5 1

fisher B: 3 1 3

fisher C: 3 1 3

No.2 Full basket Semi--basket Empty

fisher A: 2 3 2

fisher B: 2 3 2

fisher C: 3 1 3

?

?

10 有限5位数

个位数为6且能被3整除的五位数共有多少?

*思考题

求100到1000之间有多少个其数字之和为5的整数。

(答案:104,113,122,131,140,203,212,221,230,302,311,320,401,410,500)

?

*运行结果

count=2999

?

?

11 8除不尽的数

一个自然数被8除余1,所得的商被8除也余1,再将第二次的商被8除后余7,最后得到一个商为a。又知这个自然数被17除余4,所得的商被17除余15,最后得到一个商是a的2倍。求这个自然数。

?

*运行结果

The required number is:1993

?

?

12 一个奇异的三位数

一个自然数的七进制表达式是一个三位数,而这个自然数的九进制表示也是一个三位数,且这两个三位数的数码正好相反,求这个三位数。

?

*运行结果

The special number with 3 digits is:503(7)=305(9)=248(10)

?

?

13 4位反序数

设N是一个四位数,它的9倍恰好是其反序数,求N。反序数就是将整数的数字倒过来形成的整数。例如:1234的反序数是4321。

?

*运行结果

The number satisfied states condition is:1089

?

?

14求车速

一辆以固定速度行驶的汽车,司机在上午10点看到里程表上的读数是一个对称数(即这个数从左向右读和从右向左读是完全一样的),为95859。两小时后里程表上出现了一个新的对称数。问该车的速度是多少?新的对称数是多少?

?

*运行结果

The new symmetrical number kelometers is:95959.

The velocity of the car is:50.00

?

?

15姆斯特朗数

如果一个正整数等于其各个数字的立方和,则称该数为阿姆斯特朗数(亦称为自恋性数)。

如 407=43+03+73就是一个阿姆斯特朗数。试编程求1000以内的所有阿姆斯特朗数。

?

*运行结果

There are following Armstrong number smaller than 1000:

153 370 371 407

?

?

16完全数

如果一个数恰好等于它的因子之和,则称该数为"完全数"。

?

*运行结果
TThere are following perfect numbers smaller than 1000:

6 28 496

?

?

17 亲密数

如果整数A的全部因子(包括1,不包括A本身)之和等于B;且整数B的全部因子(包括1,不包括B本身)之和等于A,则将整数A和B称为亲密数。求3000以内的全部亲密数。

?

*运行结果

There are following friendly--numbers pair smaller than 3000:

220.. 284 1184.. 1210 2620.. 2924

?

?

18 回文数

打印所有不超过n(取n<256) 的其平方具有对称性质的数(也称回文数)。

?

*运行结果

No. number it‘s square(palindrome)

1 1 1

2 2 4

3 3 9

4 11 121

5 22 484

6 26 676

7 101 10201

8 111 12321

9 121 14641

?

?

19求素数

求素数表中1~1000之间的所有素数。

?

*运行结果

2 3 5 7 11 13 17 19 23 29 31 37 41 43 47

53 59 61 67 71 73 79 83 89 97 101 103 107 109 113

127 131 137 139 149 151 157 163 167 173 179 181 191 193 197

199 211 223 227 229 233 239 241 251 257 263 269 271 277 281

283 293 307 311 313 317 331 337 347 349 353 359 367 373 379

383 389 397 401 409 419 421 431 433 439 443 449 457 461 463

467 479 487 491 499 503 509 521 523 541 547 557 563 569 571

577 587 593 599 601 607 613 617 619 631 641 643 647 653 659

661 673 677 683 691 701 709 719 727 733 739 743 751 757 761

769 773 787 797 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

?

?

20求具有abcd=(ab+cd)2性质的四位数

3025这个数具有一种独特的性质:将它平分为二段,即30和25,使之相加后求平方,即(30+25)2,恰好等于3025本身。请求出具有这样性质的全部四位数。

?

*运行结果

There are following numbers with 4 digits satisfied condition:

2025 3025 9801

?

?

21歌德巴赫猜想

验证:2000以内的正偶数都能够分解为两个素数之和(即验证歌德巴赫猜想对2000以内的正偶数成立)。

?

?

22百钱百鸡问题

中国古代数学家张丘建在他的《算经》中提出了著名的"百钱买百鸡问题":鸡翁一,值钱五,鸡母一,值钱三,鸡雏三,值钱一,百钱买百鸡,问翁、母、雏各几何?

?

*运行结果

Follwing are possible plans to buy 100 fowls with 100 Yuan.

1:cock=0 hen=25 chicken=75

2:cock=4 hen=18 chicken=78

3:cock=8 hen=11 chicken=81

4:cock=12 hen=4 chicken=84

?

?

23爱因斯坦的数学题

爱因斯坦出了一道这样的数学题:有一条长阶梯,若每步跨2阶,则最最后剩一阶,若每步跨3 阶,则最后剩2阶,若每步跨5阶,则最后剩4阶,若每步跨6阶则最后剩5阶。只有每次跨7阶,最后才正好一阶不剩。请问这条阶梯共有多少阶?

?

*运行结果

Staris_number=119

?

?

24换分币

用一元人民币兑换成1分、2分和5分硬币,共有多少种不同的兑换方法。

?

*运行结果

1:1*0+2*0+5*20 2:1*5+2*0+5*19 3:1*10+2*0+5*18 4:1*15+2*0+5*17

5:1*20+2*0+5*16 6:1*25+2*0+5*15 7:1*30+2*0+5*14 8:1*35+2*0+5*13

9:1*40+2*0+5*12 10:1*45+2*0+5*11 11:1*50+2*0+5*10 12:1*55+2*0+5*9

13:1*60+2*0+5*8 14:1*65+2*0+5*7 15:1*70+2*0+5*6 16:1*75+2*0+5*5

17:1*80+2*0+5*4 18:1*85+2*0+5*3 19:1*90+2*0+5*2 20:1*95+2*0+5*1

21:1*100+2*0+5*0

?

?

25年龄几何

张三、李四、王五、刘六的年龄成一等差数列,他们四人的年龄相加是26,相乘是880,求以他们的年龄为前4项的等差数列的前20项。

?

*运行结果

The series with equal difference are:

2 5 8 11 14 17 20 23 26 29 32 35 38 41 44 47 50 53 56 59

?

?

26三色球问题

若一个口袋中放有12个球,其中有3个红的。3个白的和6个黒的,问从中任取8个共有多少种不同的颜色搭配?

?

*运行结果

R W B

1: 0 2 6

2: 0 3 5

3: 1 1 6

4: 1 2 5

5: 1 3 4

6: 2 0 6

7: 2 1 5

8: 2 2 4

9: 2 3 3

10: 3 0 5

11: 3 1 4

12: 3 2 3

13: 3 3 2

?

?

27马克思手稿中的数学题

马克思手稿中有一道趣味数学问题:有30个人,其中有男人、女人和小孩,在一家饭馆吃饭花了50先令;每个男人花3先令,每个女人花2先令,每个小孩花1先令;问男人、女人和小孩各有几人?

?

*运行结果

M W C

1: 0 20 10

2: 1 18 11

3: 2 16 12

4: 3 14 13

5: 4 12 14

6: 5 10 15

7: 6 8 16

8: 7 6 17

9: 8 4 18

10: 9 2 19

11: 10 0 20

?

?

28最大公约数和最小公倍数

求任意两个正整数的最大公约数和(GCD)和最小公倍数(LCM)。

?

*运行结果

1.Input a & b: 20 55

The GCD of 20 and 55 is: 5

The LCM of them is: 220

?

2.Input a & b: 17 71

The GCD of 17 and 71 is: 1

The LCM of them is: 1207

?

3.Input a & b: 24 88

The GCD of 24 and 88 is: 8

The LCM of them is: 264

?

4.Input a & b: 35 85

The GCD of 35 and 85 is: 5

The LCM of them is: 595

?

?

29分数比较

比较两个分数的大小。

?

*运行结果

输入: 4/5,6/7 输出: 4/5<6/7

输入: 8/4,16/32 输出: 8/4>16/32

输入:16/32,4/8 输出: 16/32=4/8

?

?

30分数之和

求这样的四个自然数p,q,r,s(p<=q<=r<=s),使得以下等式成立:

1/p+1/q+1/r+1/s=1。

?

*运行结果

The 4 fractions which sum is equal 1 are:

[ 1] 1/2+1/3+1/7+1/42=1

[ 2] 1/2+1/3+1/8+1/24=1

[ 3] 1/2+1/3+1/9+1/18=1

[ 4] 1/2+1/3+1/10+1/15=1

[ 5] 1/2+1/3+1/12+1/12=1

[ 6] 1/2+1/4+1/5+1/20=1

[ 7] 1/2+1/4+1/6+1/12=1

[ 8] 1/2+1/4+1/8+1/8=1

[ 9] 1/2+1/5+1/5+1/10=1

[10] 1/2+1/6+1/6+1/6=1

[11] 1/3+1/3+1/4+1/12=1

[12] 1/3+1/3+1/6+1/6=1

[13] 1/3+1/4+1/4+1/6=1

[14] 1/4+1/4+1/4+1/4=1

?

?

31将真分数分解为埃及分数

分子为1 的分数称为埃及分数,现输入一个真分数,请将该分数分解为埃及分数。

如:8/11=1/2+1/5+1/55+1/110。

?

*运行结果

1. Please enter a optional fraction (a/b): 1/6

It can be decomposed to: 1/6

2. Please enter a optional fraction (a/b): 20/33

It can be decomposed to: 1/2+1/10+1/165

3. Please enter a optional fraction (a/b): 10/89

It can be decomposed to: 1/9+1/801

4. Please enter a optional fraction (a/b): 19/99

It can be decomposed to: 1/6+1/40+1/3960

5. Please enter a optional fraction (a/b): 8/89

It can be decomposed to: 1/11+1/957

?

?

32列出真分数序列

按递增顺序依次列出所有分母为40,分子小于40的最简分数。

?

*运行结果

The fraction serials with demominator 40 is:

1/40 3/40 7/40 9/40 11/40 13/40 17/40 19/40

21/40 23/40 27/40 29/40 31/40 33/40 37/40 39/40

?

?

33计算分数的精确值

使用数组精确计算M/N(0<M<N<=100)的值。如果M/N是无限循环小数,则计算并输出它的第一循环节,同时要求输出 循环节的起止位置(小数位的序号)。

?

*运行结果

Please input a fraction(m/n)(<0<m<n<=100):1/3

1/3 it‘s accuracy value is:0.3

and it is a infinite cyclic fraction from 1

digit to 1 digit after decimal point.

?

?

34新娘和新郞

三对情侣参加婚礼,三个新郞为A、B、C,三个新娘为X、Y、Z。有人不知道谁和谁结婚,于是询问了六位新人中的三位,但听到的回答是这样的:A说他将和X结婚;X说她的未婚夫是C;C说他将和Z结婚。这人听后知道他们在开玩笑,全是假话。请编程找出谁将和谁结婚。

?

*运行结果

X will marry to B. (X与B结婚)

Y will marry to C. (Y与C结婚)

Z will marry to A. (Z与A结婚)

?

?

35委派任务

某侦察队接到一项紧急任务,要求在A、B、C、D、E、F六个队员中尽可能多地挑若干人,但有以下限制条件:

1)A和B两人中至少去一人;

2)A和D不能一起去;

3)A、E和F三人中要派两人去;

4)B和C都去或都不去;

5)C和D两人中去一个;

6)若D不去,则E也不去。

问应当让哪几个人去?

?

*运行结果

A will be assigned. (去)

B will be assigned. (去)

C will be assigned. (去)

D will not be assigned. (不去)

E will not be assigned. (不去)

F will be assigned. (去)

?

?

36谁在说谎

张三说李四在说谎,李四说王五在说谎,王五说张三和李四都在说谎。现在问:这三人中到底谁说的是真话,谁说的是假话?

?

*运行结果

Zhangsan told a lie (张三说假话)

Lisi told a truch. (李四说真话)

Wangwu told a lie. (王五说假话)

?

?

37谁是窃贼

公安人员审问四名窃贼嫌疑犯。已知,这四人当中仅有一名是窃贼,还知道这四人中每人要么是诚实的,要么总是说谎的。在回答公安人员的问题中:

甲说:"乙没有偷,是丁偷的。"

乙说:"我没有偷,是丙便的。"

丙说:"甲没有偷,是乙偷的。"

丁说:"我没有偷。"

请根据这四人的答话判断谁是盗窃者。

?

*运行结果

The thief is B. (乙为窃贱。)

?

?

38邮票组合

某人有四张3分的邮票和三张5分的邮票,用这些邮票中的一张或若干张可以得到多少种不同的邮资?

?

*运行结果

19 kinds: 5 10 15 3 8 13 18 6 11 16 21 9 14 19 24 12 17 22 27

?

?

39黑与白

有A、B、C、D、E五人,每人额头上都帖了一张黑或白的纸。五人对坐,每人都可以看到其它人额头上的纸的颜色。五人相互观察后,

A说:"我看见有三人额头上帖的是白纸,一人额头上帖的是黑纸。"

B说:"我看见其它四人额头上帖的都是黑纸。"

C说:"我看见一人额头上帖的是白纸,其它三人额头上帖的是黑纸。"

D说:"我看见四人额头上帖的都是白纸。"

E什么也没说。

现在已知额头上帖黑纸的人说的都是谎话,额头帖白纸的人说的都是实话。问这五人谁的额头是帖白纸,谁的额头是帖黑纸?

?

*运行结果

A is pasted a paper of black paper on his forehead. (黑)

B is pasted a paper of black paper on his forehead. (黑)

C is pasted a paper of white paper on his forehead. (白)

D is pasted a paper of black paper on his forehead. (黑)

E is pasted a paper of white paper on his forehead. (白)

?

?

40哪个大夫哪天值班

医院有A、B、C、D、E、F、G七位大夫,在一星期内(星期一至星期天)每人要轮流值班一天。现在已知:

A大夫比C大夫晚一天值班;

D大夫比E大夫晚二天值班;

B大夫比G大夫早三天值班;

F大夫的值班日在B和C大夫的中间,且是星期四;

请确定每天究竟是哪位大夫值班?

?

*运行结果

Doctor E is on duty MONDAY. (星期一:E)

Doctor B is on duty TUESDAY. (星期二:B)

Doctor D is on duty WEDNESDAY. (星期三:D)

Doctor F is on duty THUESDAY. (星期四:F)

Doctor G is on duty FRIDAY. (星期五:G)

Doctor C is on duty SATURDAY. (星期六:C)

Doctor A is on duty SUNDAY. (星期日:A)

?

?

41区分旅客国籍

在一个旅馆中住着六个不同国籍的人,他们分别来自美国、德国、英国、法国、俄罗斯和意大利。他们的名字叫A、B、C、D、E和F。名字的顺序与上面的国籍不一定是相互对应的。现在已知:

1)A美国人是医生。

2)E和俄罗斯人是技师。

3)C和德国人是技师。

4)B和F曾经当过兵,而德国人从未参过军。

5)法国人比A年龄大;意大利人比C年龄大。

6)B同美国人下周要去西安旅行,而C同法国人下周要去杭州度假。

试问由上述已知条件,A、B、C、D、E和F各是哪国人?

?

*运行结果

A is coming from ITALY. (意大利人)

B is coming from EUSSIAN. (俄罗斯人)

C is coming from U.K.. (英国人)

D is coming from GER. (德国人)

E is coming from FRANCE. (法国人)

F is coming from U.S.. (美国人)

?

?

42谁家孩子跑最慢

张王李三家各有三个小孩。一天,三家的九个孩子在一起比赛短跑,规定不分年龄大小,跑第一得9分,跑第2得8分,依此类推。比赛结果各家的总分相同,且这些孩子没有同时到达终点的,也没有一家的两个或三个孩子获得相连的名次。已知获第一名的是李家的孩子,获得第二的是王家的孩子。问获得最后一名的是谁家的孩子?

?

*运行结果

7 5 3

8 6 1

9 4 2

The last one arrived to end is a child from family Wang.

?

?

43 1~9分成1:2:3的三个3位数

将1到9 这九个数字分成三个3位数,分求第一个3位数,正好是第二个3位数的二倍,是第三个3位数的三倍。问应当怎样分法。

?

*运行结果

No.1:192 384 576

No.2:219 438 657

No.3:273 546 819

No.4:327 654 981

?

?

44 拉丁方

构造 NXN 阶的拉丁方阵(2<=N<=9),使方阵中的每一行和每一列中数字1到N只出现一次。如N=4时:

1 2 3 4

2 3 4 1

3 4 1 2

4 1 2 3

?

*运行结果

The possble Latin Squares of order 6 are:

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

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

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

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

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

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

?

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

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

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

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

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

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

?

?

45 1~9组成三个3位的平方数

将1、2、3、4、5、6、7、8、9九个数字分成三组,每个数字只能用一次,即每组三个数不允许有重复数字,也不许同其它组的三个数字重复,要求每组中的三位数都组成一个平方数。

?

*运行结果

The 3 squares with 3 different digits each are:

361,529,784

?

?

46 由8个整数形成奇特的立方体

任意给出8个整数,将这8个整数分别放在一个立方体的八个顶点上,要求每个面上的四个数之和相等。

?

*运行结果

Please enter [1] number:20

Please enter [2] number:45

Please enter [3] number:39

Please enter [4] number:25

Please enter [5] number:29

Please enter [6] number:7

Please enter [7] number:3

Please enter [8] number:2

Sorry they can‘t be constructed required cube!

?

?

47减式还原

编写程序求解下式中各字母所代表的数字,不同的字母代表不同的数字。
PEAR

  • ARA

--------

PEA

?

*运行结果

PEAR 1098

ARA – 989

----------

PEA 109

?

?

48 九位累进可除数

求九位累进可除数。所谓九位累进可除数就是这样一个数:这个数用到1到9这九个数字组成,每个数字刚好只出现一次。这九个位数的前两位能被2整除,前三位能被3整除......前N位能被N整除,整个九位数能被9整除。

?

*运行结果

The progressire divisible number is: 381654729

?

?

49约瑟夫问题

这是17世纪的法国数学家加斯帕在《数目的游戏问题》中讲的一个故事:15个教徒和15 个非教徒在深海上遇险,必须将一半的人投入海中,其余的人才能幸免于难,于是想了一个办法:30个人围成一圆圈,从第一个人开始依次报数,每数到第九个人就将他扔入大海,如此循环进行直到仅余15个人为止。问怎样排法,才能使每次投入大海的都是非教徒。

?

*运行结果

The original circle is(+:pagandom, @:christian):

+++@@+@+@@@+@+++@@+@@@+++@+@@+

(+"表示被扔下海海的非教徒 @:留在船上活命的教徒)

?

?

50 和数能表示1~23的5个正整数

已知五个互不相同的正整数之和为23,且从这五个数中挑选若干个加起来可以表示从1到23之内的全部自然数。问这五个数是什么?

?

*运行结果

There are following possible result:

[1]: 1 2 3 5 12

[2]: 1 2 3 6 11

[3]: 1 2 3 7 10

[4]: 1 2 4 5 11

[5]: 1 2 4 6 10

[6]: 1 2 4 7 9

?

?

51 10个小孩分糖果

十个小孩围成一圈分糖果,老师分给第一个小孩10块,第二个小孩2块,第三个小孩8块,第四个小孩22块,第五个小孩16块,第六个小孩4块,第七个小孩10块,第八个小孩6块,第九个小孩14块,第十个小孩20块。然后所有的小孩同时将手中的糖分一半给右边的小孩;糖块数为奇数的人可向老师要一块。问经过这样几次后大家手中的糖的块数一样多?每人各有多少块糖?

?

*运行结果

child

r 1 2 3 4 5 6 7 8 9 10

0 10 2 8 22 16 4 10 6 14 20

1 15 6 5 15 19 10 7 8 10 17

2 17 11 6 11 18 15 9 8 9 14

3 16 15 9 9 15 17 13 9 9 12

4 14 16 13 10 13 17 16 12 10 11

5 13 15 15 12 12 16 17 14 11 11

6 13 15 16 14 12 14 17 16 13 12

7 13 15 16 15 13 13 16 17 15 13

8 14 15 16 16 15 14 15 17 17 15

9 15 15 16 16 16 15 15 17 18 17

10 17 16 16 16 16 16 16 17 18 18

11 18 17 16 16 16 16 16 17 18 18

12 18 18 17 16 16 16 16 17 18 18

13 18 18 18 17 16 16 16 17 18 18

14 18 18 18 18 17 16 16 17 18 18

15 18 18 18 18 18 17 16 17 18 18

16 18 18 18 18 18 18 17 17 18 18

17 18 18 18 18 18 18 18 18 18 18

?

?

52小明买书

小明假期同爸爸一起去书店,他选中了六本书,每本书的单价分别为:3.1,1.7,2,5.3,0.9和7.2。不巧的是,小明的爸爸只带了十几块钱,为了让小明过一个愉快的假期,爸爸扔然同意买书,但提邮购一个要求,要小明从六本书中选出若干本,使得单价相加所得的和同10最接近。你能够帮助小明解决这个问题吗?

?

*运行结果

Please enter the prices of 6 books:3.1 1.7 2.0 5.3 0.9 7.2

10(+ -)0.10=2.00+0.90+7.20

10(+ -)0.10=1.70+2.00+5.30+0.90

10(+ -)0.10=3.10+1.70+5.30

?

?

53奇数平方的一个有趣性质

编程验证"大于1000的奇数其平方与1的差是8的倍数"。

?

?

54角谷猜想

日本一位中学生发现一个奇妙的"定理",请角谷教授证明,而教授无能为力,于是产生角谷猜想。猜想的内容是:任给一个自然数,若为偶数除以2,若为奇数则乘3加1,得到一个新的自然数后按照上面的法则继续演算,若干次后得到的结果必然为1。请编程验证。

?

*运行结果

Please enter number:56

[1]: 56/2=28

[2]: 28/2=14

[3]: 14/2=7

[4]:7*3+1=22

[5]: 22/2=11

[6]:11*3+1=34

[7]: 34/2=17

[8]:17*3+1=52

[9]: 52/2=26

[10]: 26/2=13

[11]:13*3+1=40

[12]: 40/2=20

[13]: 20/2=10

[14]: 10/2=5

[15]:5*3+1=16

[16]: 16/2=8

[17]: 8/2=4

[18]: 4/2=2

[19]: 2/2=1

?

?

55卡布列克常数

验证卡布列克运算。任意一个四位数,只要它们各个位上的数字是不全相同的,就有这样的规律:

1)将组成该四位数的四个数字由大到小排列,形成由这四个数字构成的最大的四位数;

2)将组成该四位数的四个数字由小到大排列,形成由这四个数字构成的最小的四位数(如果四个数中含有0,则得到的数不足四位);

3)求两个数的差,得到一个新的四位数(高位零保留)。

重复以上过程,最后得到的结果是6174,这个数被称为卡布列克数。

?

*运行结果

1) Enter a number:4312

[1]:4312-1234=3078

[2]:8730-378=8352

[3]:8532-2358=6174

2) Enter a number:8720

[1]:8720-278=8442

[2]:8442-2448=5994

[3]:9954-4599=5355

[4]:5553-3555=1998

[5]:9981-1899=8082

[6]:8820-288=8523

[7]:8532-2358=6174

3)Enter a number:9643

[1]:9643-3469=6174

?

?

56四方定理

数论中著名的"四方定理"讲的是:所有自然数至多只要用四个数的平方和就可以表示。

请编程证此定理。

?

*运行结果

1) Please enter a number = 110

110=7*7+6*6+4*4+3*3

2) Please enter a number = 211

211=8*8+7*7+7*7+7*7

3) Please enter a number = 99

99=7*7+5*5+4*4+3*3

?

?

57自动发牌

一副扑克有52张牌,打桥牌时应将牌分给四个人。请设计一个程序完成自动发牌的工作。要求:黑桃用S(Spaces)表示;红桃用H(Hearts)表示;方块用D(Diamonds)表示;梅花用C(Clubs)表示。

?

*运行结果

?

S 3 2

H J 8 6 2

D J 9 8 4 3

C 8 4

?

S A Q 8 7

H T 7 3

D K

C A Q J T 5

?

S K J 9 5

H A 9 4

D Q T 6 5 2

C 7

?

S T 6 4

H K Q 5

D A 7

C K 9 6 3 2

?

58常胜将军

现有21根火柴,两人轮流取,每人每次可以取走1至4根,不可多取,也不能不取,谁取最后一楰火柴谁输。请编写一个程序进行人机对弈,要求人先取,计算机后取;计算机一方为"常胜将军"。

?

*运行结果

Game begin:

How many stick do you wish to take(1~4)?3

18 stick left in the pile.

Compute take 2 stick.

16 stick left in the pile.

How many stick do you wish to take(1~4)?4

12 stick left in the pile.

Compute take 1 stick.

11 stick left in the pile.

How many stick do you wish to take(1~4)?2

9 stick left in the pile.

Compute take 3 stick.

6 stick left in the pile.

How many stick do you wish to take(1~4)?1

5 stick left in the pile.

Compute take 4 stick.

1 stick left in the pile.

How many stick do you wish to take(1~1)?1

You have taken the last stick.

* * * You lose!

Game Over.

?

?

?

59抢 30

这是中国民间的一个游戏。两人从1开始轮流报数,每人每次可报一个数或两个连续的数,谁先报到30,谁就为胜方。

?

*运行结果

* * * * * * * *catch thirty* * * * * * *

Game Begin

Please count:2

You count:2

Computer count: 3

Please count:2

You count:5

Computer count: 6

Please count:1

You count:7

Computer count: 9

Please count:2

You count:11

Computer count: 12

Please count:2

You count:14

Computer count: 15

Please count:2

You count:17

Computer count: 18

Please count:2

You count:20

Computer count: 21

Please count:1

You count:22

Computer count: 24

Please count:2

You count:26

Computer count: 27

Please count:2

You count:29

Computer count: 30

I lose!

* * * * * * * *Game Over * * * * * * * *

?

?

60兎子产子

从前有一对长寿兎子,它们每一个月生一对兎子,新生的小兎子两个月就长大了,在第二个月的月底开始生它们的下一代小兎子,这样一代一代生下去,求解兎子增长数量的数列。

?

*运行结果

Please enter required number of generation: 20

The repid increase of rabbits in first 20 generation is as felow:

1 1 2 3 5 8 13 21 34 55

89 144 233 377 610 987 1597 2584 4181 6765

?

?

61人机猜数游戏

由计算机"想"一个四位数,请人猜这个四位数是多少。人输入四位数字后,计算机首先判断这四位数字中有几位是猜对了,并且在对的数字中又有几位位置也是对的,将结果显示出来,给人以提示,请人再猜,直到人猜出计算机所想的四位数是多少为止。

例如:计算机"想"了一个"1234"请人猜,可能的提示如下:

人猜的整数 计算机判断有几个数字正确 有几个位置正确

1122    2             1

3344    2             1

3312    3             0

4123    4             0

1243    4             2

1234    4             4

游戏结束

请编程实现该游戏。游戏结束时,显示人猜一个数用了几次。

?

?

?

?

62人机猜数游戏(2)

请人想一个四位的整数,计算机来猜,人给计算机提示信息,最终看计算机用几次猜出一个人"想"的数。请编程实现。

?

?

?

?

63将阿拉伯数字转换为罗马数字

将大于0小于1000的阿拉伯数字转换为罗马数字。阿拉伯数字与罗马数字的对应关系如下:

1 2 3 4 5 ……

I II III IV V ……

?

*运行结果

1. Please enter number:863

863=DCCCLXIII

2. Please enter number: 256

256=CCLVI

3. Please enter number:355

355=CCCLV

4. Please enter number:522

522=DXXII

5. Please enter number:15

15=XV

?

?

64选美比赛

在选美大奖赛的半决胜赛现场,有一批选手参加比赛,比赛的规则是最后得分越高,名次越低。当半决决赛结束时,要在现场按照选手的出场顺序宣布最后得分和最后名次,获得相同分数的选手具有相同的名次,名次连续编号,不用考虑同名次的选手人数。例如:

选手序号: 1,2,3,4,5,6,7

选手得分: 5,3,4,7,3,5,6

则输出名次为: 3,1,2,5,1,3,4

请编程帮助大奖赛组委会完成半决赛的评分和排名工作。

?

*运行结果

Player-No Score Rank

1 5 3

2 3 1

3 4 2

5 7 5

5 3 1

3 5 3

7 6 4

?

?

65超长正整数的加法

请设计一个算法来完成两个超长正整数的加法。

?

*运行结果

Enter S1= 1234567890

Enter S2= 1122334455667

S1=1234567890

S2=1122334455667

S1+S2=1123569023557

?

《高级语言程序设计》习题集