求教一道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
只能用C语言的队列和堆栈去做!!
如果能做出来的话发到我的邮箱里!!
谢谢啊 !!
veci@163.com