|| 返回 || 本站首页 ||奥赛信息||计算机基础||pascal基础||数据结构||经典算法||试题汇编||校本教程||自主练习||

|| 自主练习>> 递归习题

双击自动滚屏 

   

   

递归习题:

一.  九连环问题:

N(2<=N<=9)个环,拆装这些环的规则:第一个环可以随意拆装,第二个环只有在第一环已装上时可以拆装;第I个环只有在第i-1环已装上,且第i-2, 第i-3……1环都拆下时可以装拆.编程序描述拆下N个环的过程.

.打印0N(0<=N<=9)的所有路径:  

 

                                                

 

                                              

.剔除多余括号

    键盘输入一个含有括号的四则运算表达式,可能含有多余的括号,编程整理该表达式,去掉所有多余的括号,原表达式中所有变量和运算符相对位置保持不变,并保持与原表达式等价。

  例:输入表达式       应输出表达式

    a+(b+c)                 a+b+c

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

        a+b/(c-d)               a+b/(c-d)

   注意输入a+b时不能输出b+a。

  表达式以字符串输入,长度不超过255。输入不要判错。

  所有变量为单个小写字母。只是要求去掉所有多余括号,不要求对表达式化简。

.汽车问题

  有一个人在一个公共汽车站上,从12:00到12:59观察公共汽车到达本站的情况,该站被多条公共汽车线路所公用,他记下了公共汽车到达本站的时刻。

 ●在12:00─12:59这个期间内,同一条线路上的公共汽车以相同的时间间隔到站。

 ●时间单位用“分”表示,从0到59。

 ●每条公共汽车线路上的车至少到达本站两次。

 ●在本例的公共汽线路数一定≤17。

 ●来自不同线路的公共汽车可能在同一时刻到达本站。

 ●不同公共汽车线路的车首次到站时间和(或)(and/or )时间间隔(到站的)可能相同。如果两条公共汽车线路的车有相同的开始时间和相同的时间间隔,它们必须分开表示出来。

  请为公共汽车线路编一个调度表,目标是:公共汽车线路数目最少的情况下,使公共汽车到达本站的时刻满足输入数据的要求。对于每一公共汽车线路,输出其起始时刻(第一次到达本站)和到达本站的时间间隔。

输入数据:

  输入文件INPUT.TXT首先给出观察者所看到的驶进本站的公共汽车数n(n≤300),下面以递增顺序给出各公共汽车到达本站的时刻。我们的例子是:

17

0 3 5 13 13 15 21 26 27 29 37 39 39 45 51 52 53

输出数据:

  在输出文件OUTPUT.TXT中列一个表,每一行表示一条公共汽车线路。行中第一个数字表示该线路上的公共汽车的首次到达本站的时刻;第二个数字表示该线路上的公共汽车两次到达本站的时间间隔。时间的单位是‘分’。各公共汽车线路在表中出现的先后顺序没有重要性(次序可任意)。若有多个等价解,仅需输出其中一个。我们例子的输出文件的内容为:

  0 13

  3 12

  5 8

 
 

 

 
 
 

制作与维护:重庆市忠县中学 谭海