6. Bangla Numbers (CPE10414, UVA10101) - CPE一顆星解答與說明
題目
將數字轉成特定文字
- 10000000(一千萬, 7 個 0) = kuti
- 100000(十萬, 5 個 0) = lakh
- 1000(一千, 3 個 0) = hajar
- 100(一百, 2 個 0) = shata
輸入說明
輸出說明
解題技巧
- 除法的取商數 / 、餘數 %
- 測資的數字最大值為 999999999999999(15位數),要使用 long 型態
- 因最大單位是 kuti = 10000000 ( 一千萬, 7 個 0 ),所以要先處理大於 kuti 的資料
- 以台幣來說,假設最大單位是萬,再下來是為千、百
- 數字 12154321
↓ 轉文字 - 1 千 2 百 15 萬 4 千 3 百 21
↓ 觀察文字 - 萬之前與之後,都會依序出現千、百單位
- 重要步驟
- 第一步驟:先處理大於萬的數字,處理完後,資料尾端要加上萬字
- 數字 12154321 除以 10000 取商數 = 1215
↓ 轉文字 - 1 千 2 百 15 萬
- 第一步驟:處理小於萬的數字
- 12154321 除以 10000 取餘數 = 4321
↓ 轉文字 - 4 千 3 百 21
- 第一步驟 + 第二步驟
- 1 千 2 百 15 萬 4 千 3 百 21
解題過程
取得輸入
輸出測資的編號
- 因題目要求編號要有 4 位數
- 使用 printf 方法
- System.out.printf(“文字與格式" , 變數1, 變數2, …)
- System.out.printf(“最大公因數 : %d,最小公倍數 : %d%n", max, min);
- 換行
- /r/n
- %n
判斷數字是否等於 0
- 等於 0 :印出 0 ,注意數字之前要有一個空白
- 不等於 0:準備開始進行數字轉文字,每筆測資輸出都要換
開始將文字轉數字
- 先假設遇到的數字小於一千萬(kuti),例如: 123456
- 因單位很大,建議直接使用孟加拉語做為變數名稱,去宣告實際的單位,避免手誤多打或是少打 0
將數字轉文字
- 不管數字是否大於 kuti ,數字轉文字的邏輯是一樣的,差別只在於,大於 kuti 的數字,處理完後要多加上 kuti 的字串
- 將程式碼宣告成共用方法(建議),或是複製貼上(如果真的忘記怎麼宣告方法的話),即可完成題目要求
留言
張貼留言