2218 - 老旧的钟表
小明家有一个非常旧的钟表,表盘上的数字已经看不清了,但是时针依然运转完好,于是小明想根据时针的角度来判断现在的时间,请你编程来帮助他。
当时针指向正右方,也就是3点钟的时候,我们规定此时为0度。因此,当时针转过80度的时候,此时的时间在0点钟与1点钟之间。
注意我们规定没有12点钟,要用0点钟来表示。
Input
输入包含多组测试数据。
每组输入一个整数a(0<=a<360),表示时针转过的角度。当a=-1时,输入结束。
Output
对于每组输入,输出现在的时间,格式有两种,如下:
(1)Exactly x o'clock
(2)Between x o'clock and y o'clock
注意,当输出为第二种格式时,x点钟应该是y点钟之前一个小时的那个整点,所以你不能输出例如“Between 3 o'clock and 2 o'clock”这种结果。
Examples
Input
90 245 -1
Output
Exactly 0 o'clock Between 6 o'clock and 7 o'clock
Solution C
#include<stdio.h> int main() { int m,n; int a; while(scanf("%d",&m)!=EOF,m!=-1) { n=m/30; if(m%30==0) { if(n<=3) a=3-n; else a=3-n+12; printf("Exactly %d o'clock\n",a); } else { if(m<90||m>120) { if(m<90) a=3-n; else a=3-n+12; printf("Between %d o'clock and %d o'clock\n",a-1,a); } else { printf("Between 11 o'clock and 0 o'clock\n"); } } } return 0; }
Solution C++
#include <stdio.h> int main() { int a, x, y; while (scanf("%d", &a) != EOF, a != -1) { if (a % 360 % 30 == 0 && a % 360 / 30 <= 3) { x = 3 - a % 360 / 30; printf("Exactly %d o'clock\n", x); } else if (a % 360 % 30 == 0 && a % 360 / 30 > 3) { x = 15 - a % 360 / 30; printf("Exactly %d o'clock\n", x); } else if (a % 360 % 30 != 0 && a % 360 / 30 <= 3) { x = 3 - a % 360 / 30; if (x > 0) y = x - 1; else y = 11; printf("Between %d o'clock and %d o'clock\n", y, x); } else if (a % 360 % 30 != 0 && a % 360 / 30 > 3) { x = 15 - a % 360 / 30; y = x - 1; printf("Between %d o'clock and %d o'clock\n", y, x); } } return 0; }