Zerojudge 原創/不分類題庫b882 溢位 の OωO學長?


(一)正文

第一眼看見這道題目,可以好好讚嘆這作者編故事的能力,真的太厲害了,簡直在考閱讀能力嘛......(我討厭國文!!!)
為了使這題好講一點,我把這題目重新述說一遍(不加廢話啦)
-----------------------------------------------------------------------------------------
輸入沒有進位概念的時分秒,請加上進位概念(24小時時制)
-----------------------------------------------------------------------------------------
例如輸入22 132 234,明顯地怎麼可能有234秒這的東西,所以我們就把234秒變成3分加54秒,把多的3分加入132分,變成135分。
沒有135分這東西啊,所以我們把它變成2時15分,並把2時加在22裡,變24時,但題目提示寫到:

提示 :
24小時制中並沒有 24:00:00 ,只有 00:00:00 唷~~~  OωO

所以沒有24時這東西,變成1天0時,當然時鐘不標記日期嘛,所以天就捨棄掉摟~
所以最後答案是 00:15:54

簡單嘛?噢,對,概念簡單,但這題不會輕易放過你的,一堆陷阱在裡面(我只知道兩個)~
先別急著往下看,趁著現在,現學現賣,趁熱打鐵,快~






(二)陷阱們

相信你,一定碰到了許多WA,以下我要講我碰到的陷阱,希望對你有所幫助:

1.0 不等於 00,4 不等於 04

當答案有個位數時,就會出現錯誤,格式不對。
怎辦?個位數時在前面加零啊~

2.我的答案出現奇怪的數字

為何會出現奇怪的數字?因為你的變數裝不下了啊
int 可裝的整數範圍是2147483647 ~ -2147483648
所以用大一點的變數型態吧




(三)我要程式碼!!


好好好,程式碼程式碼:

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
#include <iostream>
using namespace std;

int main(){
    long long int h,m,s;
    cin >> h >> m >> s;
    
    m = m + s/60;
    s = s%60;
    
    h = h + m/60;
    m = m%60;
    
    h = h%24;
    
    if (h < 10){
        cout << "0";
    }
    cout << h;
    cout << ":";
    if (m < 10){
        cout << "0";
    }
    cout << m;
    cout << ":";
    if (s < 10){
        cout << "0";
    }
    cout << s;
    
    
}




留言

這個網誌中的熱門文章

Zerojudge 基礎題庫a004 文文的求婚 (Python)

紙蜻蜓的受風面積與紙蜻蜓落地時間的關係 #1 [實驗歷程與Python Matplotlib]

Zerojudge 基礎題庫a013 羅馬數字 (Python)