【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过
生活随笔
收集整理的這篇文章主要介紹了
【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
題目
是個水題,一次通過。
這道題的大意就是:給你輸入3個十進制的數,讓你轉換成3個十三進制數。在轉換的時候,注意不足兩位的要用0補全兩位。
小坑
-
提交之前,想起來自查一下我的convert(int n)進制轉換函數。
-
于是寫了個循環,把0-200范圍內的13進制的數,挨個輸出檢查了一下,才想起來空位要補0。
-
另外,StringBuilder真的好用,尤其是在指定位置(位置0)插入數字的時候,簡直就可以當棧用啊,完美解決了進制轉換時候的輸出順序(計算順序是低位->高位,實際需要輸出的順序是高位->低位)問題。
代碼
import java.util.Scanner;public class Main {public static void main(String[] args) {Scanner sc = new Scanner(System.in);// 十進制int r = sc.nextInt();int g = sc.nextInt();int b = sc.nextInt();// 十三進制System.out.println("#" + convert(r) + convert(g) + convert(b));}// 十進制轉十三進制public static String convert(int n) {StringBuilder sb = new StringBuilder();while (n != 0) {int t = n % 13;String s;switch (t) {case 10:s = "A";break;case 11:s = "B";break;case 12:s = "C";break;default:s = String.valueOf(t);}sb.insert(0, s);n /= 13;}// 補位if (sb.length() == 0) {sb.insert(0, "00");} else if (sb.length() == 1) {sb.insert(0, "0");}return sb.toString();} }總結
以上是生活随笔為你收集整理的【PAT甲级 十进制转十三进制】1027 Colors in Mars (20 分) Java版 5/5通过的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 【Java类加载机制】深入类加载器(二)
- 下一篇: 【PAT甲级 U形打印】1031 Hel