|
递归习题:
一.
九连环问题:
有N(2<=N<=9)个环,拆装这些环的规则:第一个环可以随意拆装,第二个环只有在第一环已装上时可以拆装;第I个环只有在第i-1环已装上,且第i-2,
第i-3……第1环都拆下时可以装拆.编程序描述拆下N个环的过程.
二.打印0—N(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
|