天天看點

【Go語言入門100題】018 大笨鐘 (10 分) Go語言|Golang

L1-018 大笨鐘 (10 分) Go語言|Golang

微網誌上有個自稱“大笨鐘V”的家夥,每天敲鐘催促碼農們愛惜身體早點睡覺。不過由于笨鐘自己作息也不是很規律,是以敲鐘并不定時。一般敲鐘的點數是根據敲鐘時間而定的,如果正好在某個整點敲,那麼“當”數就等于那個整點數;如果過了整點,就敲下一個整點數。另外,雖然一天有24小時,鐘卻是隻在後半天敲1~12下。例如在23:00敲鐘,就是“當當當當當當當當當當當”,而到了23:01就會是“當當當當當當當當當當當當”。在午夜00:00到中午12:00期間(端點時間包括在内),笨鐘是不敲的。

下面就請你寫個程式,根據目前時間替大笨鐘敲鐘。

輸入格式:

輸入第一行按照hh:mm的格式給出目前時間。其中hh是小時,在00到23之間;mm是分鐘,在00到59之間。

輸出格式:

根據目前時間替大笨鐘敲鐘,即在一行中輸出相應數量是·Dang。如果不是敲鐘期,則輸出:

Only hh:mm. Too early to Dang.

輸入樣例1:

19:05      

結尾無空行

輸出樣例1:

DangDangDangDangDangDangDangDang      

輸入樣例2:

07:05      

輸出樣例2:

Only 07:05.  Too early to Dang.      

思路:

基礎的判斷語句,先對小時進行判斷,滿足條件再對分鐘進行判斷。再判斷出要加多少個Dang

代碼如下:

package main

import (
    "fmt"
    "strconv"
    "strings"
)

func main() {
    var time string
    _,_=fmt.Scan(&time)
    tmp := strings.Split(time,":")
    hour,_ := strconv.Atoi(tmp[0])
    second,_ := strconv.Atoi(tmp[1])
    str := ""
    if hour>=00 && hour<=12 { 
        fmt.Printf("Only %s:%s.  Too early to Dang.",tmp[0],tmp[1])
        return
    }else{
        for i:=0; i<hour-12; i++ {
            str += "Dang"
        }
    }
    if second!=0 { // 如果正好在某個整點敲,那麼“當”數就等于那個整點數
                   //如果過了整點,就敲下一個整點數,這個不是0的話,就不是整點了,就要再多加一個!
        str +="Dang"
    }
    fmt.Printf(str)
}