编程论坛's Archiver

野比 发表于 2007-6-15 22:20

[分享]相当经典的76道编程自虐题分享.无答案

<P>偶然从朋友那里搞到的, 名字是&lt;&lt;C++入门题&gt;&gt;... 但是这个入门似乎太难了..<br>题目都相当的经典. 有不少NOI的题目.<br>在C++区发过, 不过似乎这边的人更擅长与算法打交道..<br>先来20道题热身一下, 有挑战自我习惯的就请到1楼楼底下载完整版<br><br><br></P>
<P>[quote]  1.  给定等式  A B C D E     其中每个字母代表一个数字,且不同数字对应不<br>                    D F G     同字母。编程求出这些数字并且打出这个数字的<br>             +      D F G     算术计算竖式。</P>
<P>             ───────</P>
<P>                X Y Z D E</P>
<P>  2. A、B、C、D、E五名学生有可能参加计算机竞赛,根据下列条件判断哪些<br>  人参加了竞赛:</P>
<P>   (1)A参加时,B也参加;</P>
<P>   (2)B和C只有一个人参加;</P>
<P>   (3)C和D或者都参加,或者都不参加;</P>
<P>   (4)D和E中至少有一个人参加;</P>
<P>   (5)如果E参加,那么A和D也都参加。</P>
<P>  3. 打印一个 N*N 的方阵,N为每边           N=15  打印出下面图形<br>字符的个数(3<N<20), 要求最               TTTTTTTTTTTTTTT<br>外一层为"T", 第二层为"J", 从第三层               TJJJJJJJJJJJJJT<br>起每层依次打印数字 1,2,3,...                     TJ11111111111JT<br>(右图以N为15为例)                           TJ12222222221JT<br>                                                  TJ12333333321JT<br>                                                  TJ12344444321JT<br>                                                  TJ12345554321JT<br>                                                  TJ12345654321JT<br>                                                  TJ12345554321JT<br>                                                  TJ12344444321JT<br>                                                  TJ12333333321JT<br>                                                  TJ12222222221JT<br>                                                  TJ11111111111JT<br>                                                  TJJJJJJJJJJJJJT<br>                                                  TTTTTTTTTTTTTTT</P>
<P>  4. 在N行N列的数阵中, 数K(1〈=K〈=N)在每行和每列中出现且仅<br>  出现一次,这样的数阵叫N阶拉丁方阵。例如下图就是一个五阶拉丁方阵。<br>  编一程序,从键盘输入N值后,打印出所有不同的N阶拉丁方阵,并统计个数。</P>
<P>        1  2  3  4  5<br>        2  3  4  5  1<br>        3  4  5  1  2<br>        4  5  1  2  3<br>        5  1  2  3  4</P>
<P><br>  5. 输入一个十进数,将其转换成 N 进制数(0&lt;N&lt;=16)。<br>  6. 矩阵中填数. 当给出 N*N 的矩阵,要求用程序填入下列形式的数:</P>
<P>   ① 倒填,例如N=5             ② 蛇形填数              ③ 回转填数</P>
<P>┌─┬─┬─┬─┬─┐   ┌─┬─┬─┬─┬─┐   ┌─┬─┬─┬─┬─┐<br>│25│24│23│22│21│   │ 1│ 3│ 4│10│11│   │ 1│16│15│14│13│<br>├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤<br>│20│19│18│17│16│   │ 2│ 5│ 9│12│19│   │ 2│17│24│23│12│<br>├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤<br>│15│14│13│12│11│   │ 6│ 8│13│18│20│   │ 3│18│25│22│11│<br>├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤<br>│10│ 9│ 8│ 7│ 6│   │ 7│14│17│21│24│   │ 4│19│20│21│10│<br>├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤   ├─┼─┼─┼─┼─┤<br>│ 5│ 4│ 3│ 2│ 1│   │15│16│22│23│25│   │ 5│ 6│ 7│ 8│ 9│<br>└─┴─┴─┴─┴─┘   └─┴─┴─┴─┴─┘   └─┴─┴─┴─┴─┘</P>
<P><br>  7. 读入一行文本,包含若干个单词(以空格间隔,%结尾)。将其中以 A 开头的<br>  单词与以 N 结尾的单词,用头尾交换的办法予以置换。</P>
<P>  8. 输入两个正整数X,Y,将X,Y化为二进制数,然后将这两个二进制数作二进<br>  制加法运算,再将结果化为十进制数输出。</P>
<P>  9. 四人玩火柴棍游戏,每一次都是三个人赢,一个人输。输的人要按赢者手中的火柴<br>  数进行赔偿,即赢者手中有多少根火柴棍,输者就赔偿多少根。现知道玩过四次后,<br>  每人恰好输过一次, 而且每人手中都正好有16根火柴。问此四人做游戏前手中各有<br>  多少根火柴? 编程解决此问题。</P>
<P>10. 如图1所示,编写程序计算               ┎┰┰┰┰┰┰┰┰┰┒<br>    大大小小正方形共有多少?当最小          ┠╂╂╂╂╂╂╂╂╂┨<br>    正方行边长为1时,它们的总面积          ┠╂╂╂╂╂╂╂╂╂┨<br>    共为多少?                              ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┠╂╂╂╂╂╂╂╂╂┨<br>                                            ┖┸┸┸┸┸┸┸┸┸┚<br>  11. 巧排数字。将1、2、...、20这20个数排成一排,使得相邻的两个数之<br>  和为一个素数,且首尾两数字之和也为一个素数。编程打印出所有的排法。</P>
<P>12. 下图是一个集装箱仓库,阴影部分表示有集装箱存放不能通过,无阴影处为临时通<br>道。当有人要从入口处到达出口处时,必须寻找可通过路线,请你找出可完成这个过程<br>的最方便(即用最短路线)到达出口处的路径。</P>
<P>          ┎┰┰┰入口┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┰┒<br>          ┠╂╂╂──╂╂╂╂┸┸╂┸┸╂┸┸╂┸┸╂╂╂╂┸┸╂╂╂┨<br>          ┠╂╂╂──╂┸┸╂──╂┰┰╂┰┰╂──╂╂╂╂──╂╂╂┨<br>          ┠╂╂╂──╂┰┰╂┰┰╂╂╂╂╂╂╂──╂┸┸╂──╂╂╂┨<br>          ┠╂╂╂──╂╂╂╂╂╂╂╂╂╂╂╂╂┰┰╂┰┰╂┰┰╂╂╂┨<br>          ┠╂╂╂──╂┸┸╂┸┸╂┸┸╂┸┸╂┸┸╂┸┸╂┸┸╂╂╂┨<br>          ┠╂╂╂──╂┰┰╂┰┰╂┰┰╂──╂┰┰╂──╂┰┰╂╂╂┨<br>          ┠╂╂╂──╂╂╂╂╂╂╂╂╂╂──╂╂╂╂──╂╂╂╂╂╂┨<br>          ┠╂╂╂──╂╂╂╂┸┸╂┸┸╂──╂╂╂╂──╂┸┸╂╂╂┨<br>          ┠╂╂╂──╂╂╂╂┰┰╂┰┰╂┰┰╂╂╂╂┰┰╂──╂╂╂┨<br>          ┖┸┸┸──┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸┸出口┸┸┸┚</P>
<P><br>13. 有N个硬币(N为偶数)正面朝上排成一排,每次将 N-1 个硬币翻过来放在原位<br>置, 不断地重复上述过程,直到最后全部硬币翻成反面朝上为止。编程让计算机把<br>翻币的最简过程及翻币次数打印出来(用*代表正面,O 代表反面)。</P>
<P>14. 有黑白棋子各有N个(分别用*和O代替),按下图方式排列</P>
<P>        ***...***OOO...OOO</P>
<P>            N个黑棋            N个白棋</P>
<P>允许将相邻两个棋子互换位置,最后使队形成黑白交替排列,试编程实现该操作。</P>
<P>15. 已知6个城市,用c[i,j]表示从i城市到城市j是否有单向的直达汽车</P>
<P>(1=&lt;i〈=6,1〈=j〈=6), c[i,j]=1 表示城市i到城市j有单向直达汽<br>车; 否则 c[i,j]=0.  试编制程序,对于给出的城市代号i,打印出从该城市出<br>发乘车(包括转车)可以到达的所有城市。<br>16. 设有8枚硬币a,b,c,d,e,f,g,h,其中有一枚硬币是伪造的。<br>真伪硬币的区别仅是重量不同,可能重,可能轻。今要求以天平为工具,用最少的<br>比较次数挑出伪造硬币,并鉴定它是重还是轻。</P>
<P>17. 编写一个程序,当输入不超过60个字符组成的英文文字时,计算机将这个句子<br>中的字母按英文字典字母顺序重新排列,排列后的单词的长度要与原始句子中的长度<br>相同。例如:</P>
<P>    输入:</P>
<P>    THE PRICE OFBREAD IS ¥1 25 PER POUND</P>
<P>    输出:</P>
<P>    ABC DDEEE EFHIINO OP ¥1 25 PPR RRSTU</P>
<P>并且要求只对A到Z的字母重新排列,其它字符保持原来的状态。</P>
<P>18. 在一线性七个格位置的图上有两种不同颜色的棋子A,B. 排列如下图所示,中间<br>格的位置为空。</P>
<P>          ┎─┰─┰─┰─┰─┰─┰─┒<br>          ┃A┃A┃A┃  ┃B┃B┃B┃<br>          ┖─┸─┸─┸─┸─┸─┸─┚</P>
<P>要求将A,B的现行位置交换,形成下图中的排列:</P>
<P>          ┎─┰─┰─┰─┰─┰─┰─┒<br>          ┃B┃B┃B┃  ┃A┃A┃A┃<br>          ┖─┸─┸─┸─┸─┸─┸─┚</P>
<P>移动棋子的条件:</P>
<P>   (1) 每个格中只准放一个棋子。<br>   (2) 任意一个棋子均可移动一格放入空格内。<br>   (3) 一方的棋子均可跳过另一方的一个棋子进入空格。<br>   (4) 任何棋子不得跳跃两个或两个以上棋子(无论颜色同异)<br>   (5) 任何一个颜色棋子只能向前跳,不准向后跳。</P>
<P>编程完成有关的移动,并且完成具有2N+1个格子的情形. 其中两种颜色各有<br>N个棋子,且中间为空格.</P>
<P>19. (背包问题) 有 N 件物品 d1,......dN,每件物品重量为 W1,..., WN<br>(Wi &gt; 0), 每件物品价值为 V1,......VN (Vi&gt;0)。用这N件物品的某个子集<br>填空背包,使得所取物品的总重量&lt;=TOTAL,并设法使得背包中物品的价值尽可<br>能高。</P>
<P>20. (N皇后) 在国际象棋的棋盘上放置N个皇后,使其不能互相攻击,即任意<br>两个皇后不能处在棋盘的同一行,同一列,同一斜线上,试问共有多少种摆法?<br>21. 请设计一个程序,由计算机把1.. ̄.8的八个自然数填入图中,使得横、<br>竖、对角任何两个相邻的小方格中的两个数是不连续的。(下图右侧的 4 个图<br>为禁止的情形).</P>
<P>            ┌─┐          ┌─┐               ┌─┐<br>            │  │          │4│               │8│<br>        ┌─┼─┼─┐      └─┼─┐       ┌─┼─┘<br>        │  │  │  │          │5│       │7│<br>        ├─┼─┼─┤          └─┘       └─┘<br>        │  │  │  │      ┌─┐<br>        └─┼─┼─┘      │6│           ┌─┬─┐<br>            │  │          ├─┤           │1│2│<br>            └─┘          │7│           └─┴─┘<br>                            └─┘</P>
<P>[/quote]<br><br>完整版(76道)下载[attach]22592[/attach]</P>

[align=right][color=#000066][此贴子已经被作者于2007-6-16 11:49:18编辑过][/color][/align]

I喜欢c 发表于 2007-6-15 23:02

看过了...[em04]

野比 发表于 2007-6-15 23:12

<DIV class=quote><B>以下是引用<U>I喜欢c</U>在2007-6-15 23:02:13的发言:</B><BR>看过了...[em04]</DIV>
<P>达人哦</P>

nuciewth 发表于 2007-6-15 23:18

<P>估计这个东西在这里不是第一次发.</P>

野比 发表于 2007-6-15 23:24

这么经典的东西应该早有了.. 相见恨晚..

曾小 发表于 2007-6-16 12:43

好象在某个  QQ群里看过哦!而且也有人做过!呵呵!

野比 发表于 2007-6-16 13:05

<DIV class=quote><B>以下是引用<U>曾小</U>在2007-6-16 12:43:21的发言:</B><BR>好象在某个  QQ群里看过哦!而且也有人做过!呵呵!</DIV>
<P>好想要答案哦~</P>

yixiliuyun 发表于 2007-6-17 00:10

收集了  放我qq群里面  哈哈  谢谢搂主了<BR>对了   大家加我的qq群吧   一起学习学习哦  嘿嘿<BR><BR>40320457

野比 发表于 2007-6-17 10:45

不客气...<br>MS这里的高手们都深藏不露啊...

snipered 发表于 2007-10-11 18:06

做过了

succubus 发表于 2007-10-11 18:48

呵呵<BR>是个好东西<BR>很早以前就挑战过<BR>为了做这些题当年还逃了不少课呢^_^

>小北< 发表于 2007-10-14 13:15

<P>谢谢哈</P>

yaonai2003 发表于 2008-4-27 01:20

好,下下来研究下!

overwhelming 发表于 2008-5-2 11:02

附件呢?~

页: [1]

Powered by Discuz! Archiver 6.1.0  © 2001-2007 Comsenz Inc.