
2020年小学期-程序设计实践-练习题
jinzun2000
这个作者很懒,什么都没留下…
展开
-
7-25 2.1.5 Hamming Codes 海明码 (110分)
给出 N,B 和 D:找出 N 个编码(1 <= N <= 64),每个编码有 B 位(1 <= B <= 8),使得两两编码之间至少有 D 个单位的“海明距离”(1 <= D <= 7).“海明距离”是指对于两个编码,他们的二进制表示法中的不同二进制位的数目.看下面的两个编码 0x554 和 0x234 之间的区别(0x554表示一个十六进制数,每个位上分别是 5,5,4):0x554 = 0101 0101 01000x234 = 0010 0011 0100不原创 2020-07-11 11:36:34 · 270 阅读 · 0 评论 -
7-24 2.1.3 三值的排序 (80分)
排序是一种很频繁的计算任务.现在考虑最多只有三值的排序问题.一个实际的例子是,当我们给某 项竞赛的优胜者按金银铜牌序的时候. 在这个任务中可能的值只有三种 1,2 和 3.我们用交换的方法把他排成升序的. 写一个程序计算出,给定的一个 1,2,3 组成的数字序列,排成升序所需的最少交换次数.输入格式:Line 1: N (1 <= N <= 1000) Lines 2-N+1: 每行一个数字,共 N 行.(1…3)输出格式:共一行,一个数字.表示排成升序所需的最少交换次数.输入样例1:原创 2020-07-08 11:24:49 · 844 阅读 · 0 评论 -
7-16 1.4.3 等差数列 (90分)
一个等差数列是一个能表示成 a, a+b, a+2b,…, a+nb (n=0,1,2,3,…) 在这个问题中 a 是一个非负的整数,b 是正整数. 写一个程序来找出在双平方数集合 S 中长度为 n 的等差数列. 双平方数集合是所有能表示成 p2+q2 的数的集合.输入格式:第一行: N(3<= N<=25),要找的等差数列的长度. 第二行: M(1<= M<=250),搜索双平方数的上界 0 <= p,q <= M.输出格式:如果没有找到数列,输出`NONE’.原创 2020-07-05 17:58:35 · 481 阅读 · 0 评论 -
7-4 1.1.4 破碎的项链 (80分)
7-4 1.1.4 破碎的项链 (80分)你有一条由 N 个红色的,白色的,或蓝色的珠子组成的项链(3<=N<=350),珠子是随意安排的. 这里 是 n=29 的二个例子 : 第一和第二个珠子在图片中已经被作记号.图片 A 中的项链可以用下面的字符串表示:brbrrrbbbrrrrrbrrbbrbbbbrrrrb .假如你要在一些点打破项链,展开成一条直线,然后从一端开始收集同颜色的珠子直到你遇到一个 不同的颜色珠子,在另一端做同样的事.(颜色可能与在这之前收集的不同) 确定应原创 2020-07-03 18:23:27 · 680 阅读 · 0 评论 -
7-57 3.2.1 Factorials 阶乘 (100分)
N 的阶乘写作 N!表示小于等于 N 的所有正整数的乘积.阶乘会很快的变大,如 13!就必须用 32 位整数类型来存储,70!即使用浮点数也存不下了.你的任务是找到阶乘最后面的非零位.举个例子,5!=12345=120 所以 5!的最后面的非零位是 2,7!=1234567=5040,所以最后面的非零位是 4.输入格式:共一行,一个整数不大于 4,220 的整数 N.输出格式:共一行,输出 N!最后面的非零位.输入样例1:7输出样例1:4输入样例2:14输出样例2:2输入样原创 2020-07-03 11:26:43 · 322 阅读 · 0 评论 -
7-13 1.3.4 牛式 (70分)
下面是一个乘法竖式,如果用我们给定的那n个数字来取代*,可以使式子成立的话,我们就叫这个式子牛式。 * * * x * * -------------- * * * * * * -------- * * * *数字只能取代*,当然第一位不能为0,况且给定的数字里不包括0。注意一下在美国的学校中教的“部分乘积”,第一部分乘积是第二个数的个位和第一个数的积,第二部分乘积是第二个数的十位和第一个数的乘积.原创 2020-07-02 22:37:34 · 635 阅读 · 0 评论 -
7-23 2.1.2 顺序的分数 (110分)
输入一个自然数 N 请写一个程序来增序输出分母小于等于 N 的既约真分数输入格式:单独的一行 一个自然数 N(1…160)输出格式:每个分数单独占一行输入样例1:在这里给出一组输入。例如:5输出样例1:在这里给出相应的输出。例如:0/11/51/41/32/51/23/52/33/44/51/1输入样例2:4输出样例2:0/11/41/31/22/33/41/1输入样例3:10输出样例3:0/11/101/91/81/7原创 2020-07-02 17:15:19 · 676 阅读 · 0 评论 -
7-11 1.3.2 修理牛棚 (100分)
在一个暴风雨的夜晚,农民约翰的牛棚的屋顶、门被吹飞了. 好在许多牛正在度假,所以牛棚没有住 满. 剩下的牛一个紧挨着另一个被排成一行来过夜. 有些牛棚里有牛,有些没有. 所有的牛棚有相 同的宽度. 自门遗失以后,农民约翰很快在牛棚之前竖立起新的木板. 他的新木材供应者将会供应 他任何他想要的长度,但是供应者只能提供有限数目的木板. 农民约翰想将他购买的木板总长度减 到少. 给出 M(1<= M<=50),可能买到的木板的数目;S(1<= S<=200),牛棚的总数;C(1 <=原创 2020-07-02 13:02:34 · 918 阅读 · 1 评论 -
7-10 1.3.1 混合牛奶 (80分)
牛奶包装是一个如此低利润的生意,所以尽可能低的控制初级产品(牛奶)的价格变的十分重要.请帮助快乐的牛奶制造者(Merry Milk Makers)以可能的廉价的方式取得他们所需的牛奶.快乐的牛奶制造公司从一些农民那购买牛奶,每个农民卖给牛奶制造公司的价格不一定相同.而且,如一只母牛一天只能生产一定量的牛奶,农民每一天只有一定量的牛奶可以卖.每天,快乐的牛奶制造者从每个农民那购买一定量的牛奶,少于或等于农民所能提供的大值.给出快乐牛奶制造者的每日的牛奶需求,连同每个农民的可提供的牛奶量和每加仑的价格原创 2020-07-01 22:37:31 · 583 阅读 · 0 评论 -
7-6 1.2.2 方块转换 (70分)
一块 N x N(1<=N<=10)正方形的黑白瓦片的图案要被转换成新的正方形图案.写一个程序来找出将原始图案按照以下列转换方法转换成新图案的小方式:#1:转 90 度:图案按顺时针转 90 度.#2:转 180 度:图案按顺时针转 180 度.#3:转 270 度:图案按顺时针转 270 度.#4:反射:图案在水平方向翻转(形成原图案的镜像).#5:组合:图案在水平方向翻转,然后按照#1-#3 之一转换.#6:不改变:原图案不改变.#7:无效转换:无法用以上方法得到新图案. 如原创 2020-07-01 20:39:17 · 728 阅读 · 0 评论 -
7-9 1.2.5 双重回文数 (70分)
如果一个数从左往右读和从右往左读都是一样,那么这个数就叫做“回文数”.例如,12321 就是一个回文数,而 77778 就不是.当然,回文数的首和尾都应是非零的,因此 0220 就不是回文数. 事实上,有一些数(如 21),在十进制时不是回文数,但在其它进制(如二进制时为 10101)时就是 回文数.编一个程序,读入两个十进制数 N (1 <= N <= 15) S (0 < S < 10000)然后找出前 N 个满足大于 S 且在两种以上进制(二进制至十进制)上是回文数的十进原创 2020-07-01 12:25:58 · 537 阅读 · 0 评论 -
7-8 1.2.4 回文平方数 (80分)
回文数是指从左向右念和从右像做念都一样的数.如 12321 就是一个典型的回文数. 给定一个进制 B(2<=B<=20 十进制),输出所有的大于等于1,小于等于 300 且它的平方用 B 进制表示时是回文数的数.用’A’,’B’……表示 10,11 等等.输入格式:共一行,一个单独的整数 B(B 用十进制表示).输出格式:每行两个数字,第二个数是第一个数的平方,且第二个数是回文数.(注意:这两个数都应该在 B 那个进制下)输入样例1:在这里给出一组输入。例如:10输出样例2:原创 2020-07-01 11:38:34 · 673 阅读 · 0 评论 -
7-5 1.2.1 挤牛奶 (80分)
三个农民每天清晨 5 点起床,然后去牛棚给 3 头牛挤奶.第一个农民在 300 时刻(从 5 点开始计时, 秒为单位)给他的牛挤奶,一直到 1000 时刻.第二个农民在 700 时刻开始,在 1200 时刻结束.第三个 农民在 1500 时刻开始 2100 时刻结束.期间最长的至少有一个农民在挤奶的连续时间为 900 秒(从 300 时刻到 1200 时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为 300 秒(从 1200 时刻到 1500 时刻).你的任务是编一个程序,读入一个有 N原创 2020-06-30 20:50:05 · 569 阅读 · 0 评论 -
7-19 1.5.2 回文质数 (90分)
因为 151 既是一个质数又是一个回文数(从左到右和从右到左是看一样的),所以 151 是回文质数. 写一个程序来找出范围a,b间的所有回文质数;输入格式:第 1 行: 二个整数 a 和 b .输出格式:输出一个回文质数的列表,一行一个.输入样例1:在这里给出一组输入。例如:5 500输出样例1:5711101131151181191313353373383输入样例2:750 14000输出样例2:7577877979199291030110原创 2020-06-30 10:51:18 · 666 阅读 · 0 评论 -
7-1 1.1.1 你要乘坐的飞碟在这里 (100分)
一个众所周知的事实,在每一彗星后面是一个不明飞行物 UFO. 这些不明飞行物时常来收集来自在 地球上忠诚的支持者. 不幸地,他们的空间在每次旅行只能带上一群支持者. 他们要做的是用一种 聪明的方案让每一个团体人被彗星带走. 他们为每个彗星起了一个名字,通过这些名字来决定一个 团体是不是特定的彗星带走. 那个相配方案的细节在下面被给出; 你的工作要写一个程序来通过团体的名字和彗星的名字来决定一个组是否应该与在那一颗彗星后 面的不明飞行物搭配. 团体的名字和彗星的名字都以下列各项方式转换成一个数字: 这个后的数原创 2020-06-29 15:42:12 · 619 阅读 · 0 评论 -
7-3 1.1.3 黑色星期五 (80分)
13 号又是星期五是一个不寻常的日子吗?13 号在星期五比在其他日少吗?为了回答这个问题,写一个程序来计算在 n 年里 13 日落在星期一,星期二…星期日的次数.这个测试从 1900 年 1 月 1 日到 1900+n-1 年 12 月 31 日.n 是一个非负数且不大于 400.这里有一些你要知道的: 1900 年 1 月 1日是星期一.4,6,11 和 9 月有 30天.其他月份除了 2 月有 31 天.闰年 2 月有 29 天,平年 2 月有 28 天.年份可以被 4 整除的为闰年(1992=原创 2020-06-29 15:30:19 · 1003 阅读 · 0 评论 -
7-2 1.1.2 贪婪的礼物送礼者 (90分)
对于一群要互送礼物的朋友,你要确定每个人送出的礼物比收到的多多少(and vice versa for those who view gift giving with cynicism). 在这一个问题中,每个人都准备了一些钱来送礼物,而这些钱将会被平均分给那些将收到他的礼物 的人. 然而,在任何一群朋友中,有些人将送出较多的礼物(可能是因为有较多的朋友),有些人有准备了较多的钱. 给出一群朋友, 没有人的名字会长于 14 字符,给出每个人将花在送礼上的钱,和将收到他的礼物 的人的列表, 请确定每个人收到的原创 2020-06-29 11:02:05 · 888 阅读 · 2 评论