64.  以字符串形式由键盘输入两个高精度的8进制正整数,串长小于255,以 
第一个数为被除数,第二个数为除数,进行高精度除法运算,并显示按 8 进制表 
示的商和余数。 
( 参看程序 8 )

65. ( NOI'94.1_1 ) 键盘输入一个仅由小写字母组成的字符串,输出以该串中任 
取M个字母的所有排列及排列总数。

66. ( NOI'94.1_2 ) 编程实现两个高精度实数减法,两数分别由键盘输入,均不 
  超过240位。 
( 参看程序 5 )

67. ( NOI'94.1_3 ) 一个实数数列共有N项,已知a(i)=(a(i-1)-a(i+1))/2+d, 
(1〈i〈N)(N <60) , 键盘输入N,d,a(1),a(n),m,输出 a(m)。

68. ( NOI'94.1_4 ) 键盘输入一个高精度的正整数N,去掉其中任意S个数字后 
剩下的数字按原左右次序将组成一个新的正整数。编程对给定的N和S,寻找一种 
方案使得剩下的数字组成的新数最小。输出应包括所去掉的数字的位置和组成的新 
的正整数。(N不超过240位)

69. 在两个文本文件中各存有一个以西文制表符制成的未填入任何表项的表结构, 
分别称之为表1和表2,要求编程将表1和表2下述规则合并成表3: 
    规则:表1在表2之上,表1和表2的左边框对齐,将表1的最低行与表2的 
最顶行合并。例:在你的C盘根目录下有两个文件 t0.1 和 t0.2,分别存放上述 
的表1和表2,经上述规则合并后得到表3,放在文件中。三张表见下图: 
  ┎─┰─┰─┰─┒                                ┎─┰─┰─┰─┒ 
  ┃  ┃  ┃  ┃  ┃        ┎┰─┰─┒            ┃  ┃  ┃  ┃  ┃ 
  ┠─╂─╂─╂─┨        ┃┃  ┃  ┃            ┠─╂─╂─╂─┨ 
  ┃  ┃  ┃  ┃  ┃        ┖┸─┸─┚            ┃  ┃  ┃  ┃  ┃ 
  ┖─┸─┸─┸─┚                                ┠┰┸┰┸┰┸─┚ 
                                                    ┃┃  ┃  ┃ 
                                                    ┖┸─┸─┚ 
        表1                    表2                    表3 
    编程要求: 
  (1) 程序应能自给定的文件中读入两个源表并显示。 
  (2) 若源表有错,应能指出其错。 
  (3) 将表1和表2规则合并成表3,并显示之。 
  (4) 所有制表符的ASCII码应由选手自己从给出的示例文件中截取。

70. (圆盘问题) 从左向右依次安放 4 根细柱 A,B,C,D. 在 A 上套有 N (N≤20) 
个直径相同的圆盘, 从下到上依次用连续的小写字母 a,b,c,...编号, 将这些圆盘 
经过 B, C 单向地移入 D (即不允许从右向左移动). 圆盘可在 B,C 中暂存. 从键 
盘输入 N, 及前 N 个小写字母的一个排列, 它表示最后在 D 盘上形成的一个从下 
到上的圆盘序列. 请用文本文件 ANS2.TXT 输出形成这一排列的操作过程. 
  该文件的每一行为一个形如 "k M L" 的字母序列, 其中 k 为圆盘编号, M 为 k 
盘原先的柱号, L 为新柱号. 或者直接在屏幕上输出"No",表示不能生成这种排列. 
    例:                                ┃      ┃      ┃      ┃ 
    键盘输入:                          ┃      ┃      ┃      ┃ 
        3                        d  ━╋━    ┃      ┃      ┃ 
        acb                      c  ━╋━    ┃      ┃      ┃ 
    则一个正确的输出文件        b  ━╋━    ┃      ┃      ┃ 
  可以是:                        a  ━╋━    ┃      ┃      ┃ 
      c  A  B                      ━━┻━━━┻━━━┻━━━┻━ 
      b  A  C                          A      B      C      D 
      a  A  D 
      b  C  D 
      c  B  D

71. (最长连线) 设有一个 N×N 的方格图形,且 N 为 3 的倍数。要求在图形中 
存放 0 或 1,相邻的 1 可以连成一条连线,连接的方法可以是行,也可以是列; 
同时约定一条连线只能有一个起点和一个终点,图形上的点最多只能访问一次。 
编程求最长连线. 例如 N=6 时,有下图: 
                1  2  3  4  5  6 
              ┌─┬─┬─┬─┬─┬─┐ 
          1  │1│1│1│0│0│1│ 
              ├─┼─┼─┼─┼─┼─┤ 
          2  │1│1│0│1│1│1│ 
              ├─┼─┼─┼─┼─┼─┤ 
          3  │0│0│0│1│0│1│ 
              ├─┼─┼─┼─┼─┼─┤ 
          4  │1│1│0│1│1│1│ 
              ├─┼─┼─┼─┼─┼─┤ 
          5  │0│1│0│0│0│0│ 
              ├─┼─┼─┼─┼─┼─┤ 
          6  │1│1│1│1│0│0│ 
              └─┴─┴─┴─┴─┴─┘ 
  在该图中,包含有如下的一些连线: 
    1←1←1        1←1                    1 
    ↓                ↓                        ↓ 
    1→1            1                1→1  1 
                      ↓                ↑      ↓ 
                      1→1→1        1      1 
                                          ↑      ↓ 
                                          1←1←1 
    在以上的连线中,最长的连线为:    表示方法: 
            1                      最长连线长度:LMAX=9 
            ↓                      连线:(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                  连线的表示不是唯一的,仅给出一种即可。

72. (NOI'95.1_2) 在一个园形操场的四周摆放 N 堆石子(N≤100), 现要将石子 
有次序地合并成一堆。规定每次只能选相邻的两堆合并成新的一堆,并将新的一堆 
的石子数,记为该次合并的得分。 
  编一程序,由文件读入堆数 N 及每堆的石子数(≤20), 
  ① 选择一种合并石子的方案, 使得做N-1次合并, 得分的总和最小; 
    ② 选择一种合并石子的方案, 使得做N-1次合并, 得分的总和最大. 
    例如, 图 2-1 所示的4堆石子,每堆的石子数(从最上面的一堆数起, 顺时针数) 
依次为4  5  9  4. 则 3 次合并得分总和最小的方案为图2-2,得分总和最大的方案 
为图 2-3. 
    (加图) 
  输入数据: 
    文件名由键盘输入,该文件内容为; 
    第一行为石子堆数 N; 
    第二行为每堆的石子数, 每两个数之间用一个空格符分隔 
    输出数据: 
    输出文件名为 OUTPUT.TXT 
  第 1 至 N-1 行为得分最小的合并过程. 每行包含两个数, 表示应该合并的两 
堆石子的数目, 小数在前, 大数在后, 第 N 行为合并成一堆后的最小得分总和; 
第 N+1 行为空行, 第 N+2 至 2N+1 行为得分最大合并过程(格式同前). 第 2N+2 
行为最大得分总和.

73. (NOI'95.1_4) N 位由 0 和 1 组成的字符串 A、B 可分别表示为 
  A=aNaN-1…ai…a2a1 
  B=bNbN-1…bi…b2b1 
其中, ai=0或1, bi=0或1,  1≤i≤N, N≤15. 
    如果存在某一位j(j∈1…N), 在该位上两串不同, 即aj≠bj, 而其余N-1位 
上的两串相同, 即ai=bi(i∈1…N,i≠j), 则称 A、B 两串“互邻”。 
  比如,在N=4时, A=1100, B=1000, A、B 两串“互邻”, 而 C=1100, D= 
1010, C、D 两串不“互邻”。 
编程要求: 
    寻找一个含有 2N 个上述01串的序列, 该序列满足以下要求: 
    ① 组成该序列的每一个01串都与其它串不同; 
    ② 第k个串与第k-1个串有“互邻”关系,2≤k≤2N; 
    ③ 该序列首项由输入指定. 
    例如 N=2, 指定首项为01, 则一个满足上述要求的序列为 
    01  11  10  00 
  输入数据                        ┏━━━━━━┓  ┏━━━━━┓ 
    文件名由键盘输入                ┃EXAMPLE4.TXT┃  ┃MODEL4.TXT┃ 
    该文件共有两行                  ┠──────┨  ┠─────┨ 
    第一行为  N                      ┃2          ┃  ┃2        ┃ 
    第二行为指定的序列首项          ┃01          ┃  ┃01        ┃ 
                                    ┃            ┃  ┃11        ┃ 
  输出数据                        ┗━━━━━━┛  ┃10        ┃ 
    输出文件为 OUTPUT.TXT                              ┃00        ┃ 
    第一行为  N                                        ┃          ┃ 
    第二行至第2N+1行依次输出序列的每一个串.            ┗━━━━━┛ 
  输入输出举例 
    参考输入文件: EXAMPLE4.TXT 
    参考输出文件: MODEL4.TXT

74. (NOI'95.1_5) m、n为整数,且满足下列两个条件: 
  ① m、n∈{1, 2, …, k}, (1≤k≤109) 
    ② (n^2-m*n-m^2)^2=1 
    编一程序, 由键盘输入k, 求一组满足上述两个条件的 m、n, 并且使m^2+n^2 
的值最大. 
    例如, 若 k=1995, 则 m=987, n=1597 时, 则 m、n 满足条件, 且可使 
m^2+n^2的值最大.

75. (钱币系统问题) 某钱币系统由 k (k≤20) 种硬币组成, 币值依次为 a[1], 
a[2],...,a[k], 其中 a[i] (i=1,2,...,k) 为互不相同的正整数, 且依降序排列, 
a[1]≤200. 给定某整数币值 n(n≤3000), 要求用最少枚数的硬币表示这个币值. 
    输入: 用文件输入已知数据, 格式为: 
      第 1 行: k (硬币种数) 
      第 2 行: a[1] a[2] ... a[k] (各币值用空格隔开,已按降序排列好) 
      第 3 行: n (给定的币值) 
    输出: 直接在屏幕上输出结果. 如果该钱币系统无法表示币值 n,应输出'No', 
否则按以下格式输出: 
      第 1 行: 最少钱币枚数 r. 
      第 2 行: 输出若干形如 m*n 的表达式, m 为币值, n为使用该币值的枚数. 
各式第 2 个因子之和应等于 r, 各式乘积之和应等于 n. 
    例: 设 (a[1],a[2],a[3])=(5,2,1),  n=12,  则应输出 
      3 
      5*2  2*1.

76. (省刻度尺问题)给定长度为 L 的直尺, L 为整数, 且L≤40. 为了能一次直接 
量出  1,2,...,L 的各种长度, 该尺内部至少要有多少条刻度 ?  请输出最少刻度 
数( 不含两端点)及每个刻度的位置. 测量长度时可利用两端点, 其位置分别为 0, 
L. 
    输入: 由键盘输入 L. 
    输出: 用文本文件按以下格式输出结果(文件名: ANS2.TXT): 
      第 1 行: S ( 最少刻度数 ) 
      第 2 行: 尺内 S 个刻度的位置 
      第 3 行至第 L+2 行: 每行输出 3 个用空格隔开的整数 t m n, 其中 
1≤t≤L 为要测量的各长度, m,n 依次为该长度的起止刻度 (m <n). 
    例: 如果 L=6, 则一个正确的输出是: 
      2 
      1 4                    提示:  (1) 最少刻度数 S 应满足: 
      1 0 1                    C[S+2,2]=(S+2)*(S+1)/2≥L. 
      2 4 6                        (2) 除两端点外, 第一个刻度可取为 
      3 1 4                    A[1]=1, 第二个刻度可在 1, L-2, L-1 这 
      4 0 4                    三个数中选取. 
      5 1 6 
      6 0 6

经典编程题,大家一起做相关推荐

  1. JAVA50道经典编程题

    加强对基础知识的巩固提升,拓展逻辑思维. JAVA50道经典编程题: [程序1] 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不 ...

  2. JavaSE经典编程题

                                              JavaSE经典编程题 作者:田超凡 版权所有,转载请注明原作者,仿冒侵权必究法律责任 [程序1] TestRabb ...

  3. matlab经典编程题,matlab

    时间:2019-05-12 12:56:56 作者:admin MATLAB 编程题总结LY 1.输出x,y两个中值较大的一个值. x=input('x='); y=input('y='); if x ...

  4. java 初级编程题_java基础经典编程题

    java基础经典编程题 Monkey_peach代码 package com.sailor.game; /** * 题目:猴子吃桃问题:猴子第一天摘下若干个桃子,当即吃了一半,还不瘾,又多吃了一个 第 ...

  5. python经典编程题分别取个位十位百位

    python经典编程题分别取个位十位百位 问题描述: 对于输入的两个两位数正整数a.b,将a的十位和个位依次放到c的十位和千位,将b的十位和个位依次放到c的百位和个位上. 输入:a,b两个整数 输出: ...

  6. csharp高级练习题:Codewars风格排名系统【难度:4级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp高级练习题:Codewars风格排名系统[难度:4级]: 写一类称为用户被用来计算用户将通过一个类似于Codewars用途排名系统进展的量. 商业规则: 用户开始于秩-8,可以进步一路8. ...

  7. csharp基础练习题:noobCode 03:检查这些信件...查看是否在“字符串1”的信件出现在“字符串2”【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:noobCode 03:检查这些信件-查看是否在"字符串1"的信件出现在"字符串2"[难度:1级]: 编写一个函数,检查第二字符串中的字 ...

  8. csharp基础练习题:小数的位数【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:小数的位数[难度:1级]: 确定在一个无符号整数的十进制数字号码.例如,图9是一个数字,66具有2位和128685具有6位数字.要小心,以避免溢出/下溢. 编程目标: publ ...

  9. csharp基础练习题:产品和LCMS之间的差异总和【难度:1级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp基础练习题:产品和LCMS之间的差异总和[难度:1级]: 在此习题您需要创建一个函数,非负整数对的二维数组/列表并返回的所有"保存",你可以得到[LCM(HTTPS的总 ...

  10. csharp高级练习题:ASCII85编解码【难度:3级】--景越C#经典编程题库,不同难度C#练习题,适合自学C#的新手进阶训练

    csharp高级练习题:ASCII85编解码[难度:3级]: ASCII85是公司的PDF和Postscript内使用的二进制到ASCII编码方案,并在基地64.你的任务是两个新的方法来扩展Strin ...

最新文章

  1. leetcode前缀树java_LeetCode 实现 Trie (前缀树)
  2. 截取前四位字符串_Python的字符串切片
  3. 零基础AJAX入门(含Demo演示源文件)
  4. 【Verilog HDL 训练】第 03 天
  5. 【laravel】laravel的基础学习笔记
  6. C#: 8.0 和 9.0 常用新特性
  7. =在 java中怎么表示_在Java中各种类型运算符的介绍与其基本使用方式(有具体使用示例)...
  8. SRM 212 Div II Level One: YahtzeeScore
  9. TensorFlow:模型的保存与恢复(Saver)
  10. Ubuntu 64-bit下搭建 Apache 2、PHP5、MySQL、GO Web服务器
  11. Android: Android源码下载方法详解
  12. git将项目提交到本地创库
  13. c++计算一维数组中的最大元素
  14. 2017Final 圆周率山
  15. 开发3D游戏建模都需要哪些软件?软件繁多,如何从中挑选学习?
  16. Python分支语句练习题
  17. SSL在线生成地址惠存
  18. 活动 | Authing 首次渠道合作活动圆满落幕
  19. MMDetection(四):在自己的数据集上训练模型
  20. 机场精细化管理_【青海机场公司召开“强化‘三基’固根本 精益管理促发展”主题交流会议】...

热门文章

  1. 神州数码DCN-IPv6
  2. 16进制颜色值 与 rgb颜色值转换
  3. silverlight 文件下载若干方法
  4. (20200825已解决)CMD 不支持将 UNC 路径作为当前目录
  5. MapStruct使用方法
  6. gfoj树形dp 有线电视网
  7. centos 7 防火墙配置和白名单问题
  8. SQL注入原理-POST注入
  9. Rex's BaseActivity
  10. 天纵智能软件快速开发平台单页编辑插件