有時候人們用四位數字表示一個時間,比如1106表示11點零6分。現在,你的程序要根據起始時間和流逝的時間計算出終止時間。
讀入兩個數字,第一個數字以這樣的四位數字表示當前時間,第二個數字表示分鍾數,計算當前時間經過那么多分鍾后是幾點,結果也表示為四位數字。當小時為個位數時,沒有前導的零,即5點30分表示為530。注意,第二個數字表示的分鍾數可能超過60,也可能是負數。
輸入格式:
輸入在一行中給出2個整數,分別是四位數字表示的起始時間、以及流逝的分鍾數,其間以空格分隔。注意:在起始時間中,當小時為個位數時,沒有前導的零,即5點30分表示為530;流逝的分鍾數可能超過60,也可能是負數。
輸出格式:
輸出四位數字表示的終止時間。題目保證起始時間和終止時間在同一天內。
輸入樣例:
1120 110
輸出樣例:
1310
/*自己的想法*/ #include<stdio.h> int main() { int t1,t2,t3; int hour1,minute1,hour2,minute2; scanf("%d %d",&t1,&t2); hour2=t2/60; minute2=t2%60; hour1=t1/100; minute1=t1%100; int hour3=hour1+hour2; int minute3=minute2+minute1; if(minute3>60) { minute3=minute3%60; hour3++; } t3=hour3*100+minute3; printf("%d",t3); return 0; }
| 測試點 | 提示 | 結果 | 耗時 | 內存 |
|---|---|---|---|---|
| 0 | sample 滿4位,分鍾數超過60,有進位 | 答案正確 | 2 ms | 128KB |
| 1 | 讀不滿4位,進位分鍾正好是0 | 答案錯誤 | 2 ms | 256KB |
| 2 | 分鍾小於0,輸出不滿4位 | 答案錯誤 | 2 ms | 128KB |
參考的代碼
/*參考的代碼*/ #include <stdio.h> int main() { int starttime,durtime; scanf("%d %d",&starttime,&durtime); int dm,dh,sm,sh; dm=durtime%60;//將流逝時間轉化為分和時 dh=durtime/60; sm=starttime%100;//將起始時間轉化為時和分 sh=starttime/100; //將兩個時間的分相加,注意大於等於60分鍾時,要入到時里面去 //兩時間的時相加 sm+=dm; if (sm>=60) //注意的地方 { sm=sm-60; sh=sh+1; } if (sm<0) //注意的地方 { sm=sm+60; sh=sh-1; } sh+=dh; printf("%d%02d", sh, sm); }
