题目描述:
小明家有一个非常旧的钟表,表盘上的数字已经看不清了,但是时针依然运转完好,于是小明想根据时针的角度来判断现在的时间,请你编程来帮助他。
当时针指向正右方,也就是3点钟的时候,我们规定此时为0度。因此,当时针转过80度的时候,此时的时间在0点钟与1点钟之间。
注意我们规定没有12点钟,要用0点钟来表示。
输入:
输入包含多组测试数据。
每组输入一个整数a(0<=a<360),表示时针转过的角度。当a=-1时,输入结束。
输出:
对于每组输入,输出现在的时间,格式有两种,如下:
(1)Exactly x o'clock
(2)Between x o'clock and y o'clock
注意,当输出为第二种格式时,x点钟应该是y点钟之前一个小时的那个整点,所以你不能输出例如“Between 3 o'clock and 2 o'clock”这种结果。
样例输入:
90
245
-1
样例输出:
Exactly 0 o'clock
Between 6 o'clock and 7 o'clock
解题思路:
我们将钟表的3点设为0度,根据题意,要逆时针旋转,把12点设为0点,可以建立一个数组,从3开始,逆时针依次为2,1,0(12点),转过一圈回到3点即为0度,思考一下是有规律的,用角度/30就可以了!
程序代码:
#include<stdio.h> int main() { int n,a[15]={3,2,1,0,11,10,9,8,7,6,5,4,3}; while(scanf("%d",&n)!=EOF) { if(n==-1) break; if(n%30==0) printf("Exactly %d o'clock\n",a[n/30]); else printf("Between %d o'clock and %d o'clock\n",a[n/30+1],a[n/30]); } return 0; }