สมมติว่าเรามีอินพุตสองชั่วโมงและนาที เราต้องแสดงเวลาในรูปแบบข้อความ เป็นแบบนี้ −
- 8:00 :8'o นาฬิกา
- 8:01 :แปดนาทีผ่านไป
- 8:10 :แปดโมงสิบนาที
- 8:15 :แปดโมงครึ่ง
- 8:30 :แปดโมงครึ่ง
- 8:40 :ยี่สิบนาทีถึงเก้า
- 8:45 :สี่ถึงเก้า
- 8:47 :สิบสามนาทีถึงเก้า
- 8:28 :แปดโมงยี่สิบแปดนาที
ดังนั้น หากอินพุตเป็น h =9, m =42 เอาต์พุตจะเป็นสิบแปดนาทีถึงสิบ
เพื่อแก้ปัญหานี้ เราจะทำตามขั้นตอนเหล่านี้ -
- ข้อความ:=รายการที่มีข้อความสำหรับค่าตัวเลขที่แตกต่างกัน 30 ค่าดังนี้:["หนึ่ง" "สอง" "สาม" "สี่" "ห้า" "หก" "เจ็ด" "แปด" ,"เก้า","สิบ", "สิบเอ็ด","สิบสอง", "สิบสาม", "สิบสี่", "สี่", "สิบหก","สิบเจ็ด", "สิบแปด","สิบเก้า", "ยี่สิบ", " ยี่สิบเอ็ด","ยี่สิบสอง", "ยี่สิบสาม", "ยี่สิบสี่", "ยี่สิบห้า", ยี่สิบหก", "ยี่สิบเจ็ด", "ยี่สิบแปด", "ยี่สิบ- เก้า", "ครึ่ง"]
- op:=สตริงว่าง
- ถ้า m เท่ากับ 0 แล้ว
- op :=text[h - 1] concatenate " o' clock"
- มิฉะนั้น เมื่อ m เท่ากับ 30 แล้ว
- op :=text[m - 1] concatenate " อดีต " concatenate text[h - 1]
- มิฉะนั้นเมื่อ m เท่ากับ 1 แล้ว
- op :=text[m - 1] concatenate " นาทีที่ผ่านมา " concatenate text[h - 1]
- มิฉะนั้น เมื่อ m เท่ากับ 15 แล้ว
- op :=text[m - 1] concatenate " อดีต " concatenate text[h - 1]
- มิฉะนั้นเมื่อ m − 30 ไม่ใช่ศูนย์ ดังนั้น
- op :=text[m - 1] เชื่อม " นาทีที่ผ่านมา " concatenate text[h - 1]
- มิฉะนั้นเมื่อ m เท่ากับ 45 แล้ว
- op :=" Quarter to " เชื่อมข้อความ[h]
- อย่างอื่น
- op :=text[(60 - m) -1] เชื่อม " minutes to " concatenate text[h]
- รีเทิร์น op
ตัวอย่าง
ให้เราดูการใช้งานต่อไปนี้เพื่อความเข้าใจที่ดีขึ้น -
def solve(h, m): text=["one", "two", "three", "four", "five", "six", "seven", "eight","nine","ten", "eleven", "twelve", "thirteen", "fourteen", "quarter", "sixteen","seventeen", "eighteen", "nineteen", "twenty", "twenty-one","twenty-two", "twenty-three", "twenty-four", "twentyfive"," twenty-six", "twenty-seven", "twenty-eight", "twenty-nine", "half"] op="" if (m == 0): op = text[h - 1] + " o' clock" elif (m == 30): op = text[m - 1]+ " past " + text[h - 1] elif (m == 1): op = text[m - 1] + " minute past " + text[h - 1] elif (m == 15): op = text[m - 1]+ " past " + text[h - 1] elif (m < 30): op = text[m - 1] + " minutes past " + text[h - 1] elif (m==45): op = "quarter to " + text[h] else: op = text[(60 - m)-1] + " minutes to " + text[h] return op h = 9 m = 42 print(solve(h, m))
อินพุต
9, 42
ผลลัพธ์
eighteen minutes to ten