[求助]求救-----球钟问题(用堆栈和队列实现,用c语言实现)
球钟(Ball Clock)
1.问题描述 球钟是一个利用球的移动来记录时间的简单装置。它有三个可以容纳若干个球的指示器:分钟指示器,五分钟指示器,小时指示器。若分钟指示器中有2个球,五分钟指示器中有6个球,小时指示器中有5个球,则时间为5:32。 球钟的工作原理如下:分钟指示器最多可容纳4个球。每过一分钟,球钟就会从球队列的队首取出一个球放入分钟指示器,当放入第五个球时,在分钟指示器的4个球就会按照他们被放入时的相反顺序加入球队列的队尾。而第五个球就会进入五分钟指示器。按此类推,五分钟指示器最多可放11个球,小时指示器最多可放11个球。当小时指示器放入第12个球时,原来的11个球按照他们被放入时的相反顺序加入球队列的队尾,然后第12个球也回到队尾。这时,三个指示器均为空,回到初始状态,从而形成一个循环。因此,该球钟表示时间的范围是从0:00到11:59。 现设初始时球队列的球数为x(27≤x≤127),球钟的三个指示器初态均为空。问要经过多少天(每天24小时),球钟的球队列才能回复原来的顺序。 2.要求: ①编写计算x个球需要多少天的算法。 ②测试程序一:从键盘输入x,答案用整数形式输出到屏幕。 ③测试程序二:分别计算球的个数x从27到127时,分别需要经过多少天,并把计算结果(以整数形式)保存在一个文件result.txt中。
3.测试数据:
测试数据x 参考答案 27 23 45 378 87 570 88 1026 127 2415
[此贴子已经被作者于2005-4-21 21:54:11编辑过]