十進位轉換為K進位 Java 程式碼

最近在讀《電腦科學導論——跨學科方法》(機械工業出版社),習題索引:1.3.21:

  編寫一個新程式Kary,輸入兩個命令行參數i和k,並將i轉換為基數k的數值表示。假設i是java中的long數據類型,k是2到16之間的整數。對於大於10的基,使用A到F來表示第11位到第16位的數字。

  下面是我自己寫的程式碼,經過測試可以運行。限於自己水平有限,不當之處,望多多指正。

 1 package test;
 2 
 3 public class Kary {
 4 
 5     public static void main(String[] args) {
 6         // TODO Auto-generated method stub
 7         long i = 23;
 8         int k = 12;
 9         long t;//參數 t
10         String s = " ";
11         for( ;i>0; i /= k) // i/= k 是在for下面的loop執行完後,再執行的。
12         {
13                 t = i%k;
14                 if(t >= 10)
15                     {
16                     //大括弧明確 if 的邊界
17                     if(t<11) System.out.print("A"+s);
18                     if(11<=t&&t<12)System.out.println("B"+s);
19                     if(12<=t&&t<13)System.out.println("C"+s);
20                     if(13<=t&&t<14)System.out.println("D"+s);
21                     if(14<=t&&t<15)System.out.println("E"+s);
22                     if(15<=t&&t<16)System.out.println("F"+s);
23                     }
24                  else
25                     {
26                     System.out.println(t);
27                     }
28             
29 
30 
31         }
32         
33         
34 
35     }
36 
37 }

 第一次修改 :

  將每一個列印變成println換行列印,之前列印出來的排列順序是相反的。這樣子列印計算結果應該是,從下往上讀。

Tags: