時針和分針開始在12點重合,這次重合不算,當時針再一次回到12點位置時,時針和分針重合了多少次?用C語言編程怎麼編????
#include <stdio.h>
#include <stdlib.h>
/**
這裡有個假設,是針對電子鐘的,因為電子鐘上面錶盤一圈有60格
分針每走1格為1分鐘。
時針每走1格為12分鐘。
時針走5格為1小時。
電子鐘的時針和分針肯定是在格上相遇。
機械錶的情況有些複雜,因為秒針時針分針都時刻在動。(沒找到好的求解辦法)
*/
//判斷iHour時 iMinute 分,時針和分針是否相遇
//例如判斷 1點05分,是否時針和分針是否相遇,此時iHour = 1,iMinute =5;
int CheckSameOffsite(int iHour,int iMinute)
{
int iHourOffsite,iMinuteOffsite;
//每小時時針走5格;時針走1格,分針走12格
iHourOffsite = iHour * 5 + iMinute / 12;
iMinuteOffsite = iMinute; //分針位移的格數
return (iHourOffsite == iMinuteOffsite);
}
int main(int argc, char *argv[])
{
int iHour,iMinute;
int iMeetTimes;//相遇次數
iMeetTimes = 0;
printf("時針和分針從時間0點1分開始計時.../n");
for (iHour=0;iHour<12;iHour++) //0 - 11點
for (iMinute=1;iMinute<=60;iMinute++) // 1 -60 分
{
if (CheckSameOffsite(iHour,iMinute))
{
printf("%d點%d分相遇/n",iHour,iMinute);
iMeetTimes++;
}
}
printf("總計:/t12個小時後時針和分針共有%d次相遇/n",iMeetTimes);
system("PAUSE");
return 0;
}
輸出結果:
時針和分針從時間0點1分開始計時...
1點5分相遇
2點10分相遇
3點16分相遇
4點21分相遇
5點27分相遇
6點32分相遇
7點38分相遇
8點43分相遇
9點49分相遇
10點54分相遇
11點59分相遇
11點60分相遇
總計: 12個小時後時針和分針共有12次相遇
請按任意鍵繼續. . .