2012年8月4日 星期六

考古題


有看到一題考古題
讀入一正整數,輸出2進位,3進位......8進位的各種表示法(要用GOSUB或副程式)
嗯...除了JAVA我其他程式碼一概看無...也不知道甚麼是GOSUB 
我只知道根據JAVA的寫法我寫成

package javaapplication1;
import java.io.* ;
public class Main {
    public static void main(String[] args)throws IOException  {
        int i,n;
        while(true){
           System.out.println("請輸入數字");
           try{
                BufferedReader buf = new BufferedReader(new InputStreamReader(System.in));
                String str = buf.readLine();
                n=Integer.parseInt(str);
                }catch(NumberFormatException exception){
                System.out.println("教你打數字聽不懂啊!!");
                continue;
               }//如果輸入的不是數字的話出現訊息並要求重新輸入
           break;//如果輸入的是數字即跳出迴圈
         }
       for(i=2;i<=8;i++){
      System.out.print(n+"的"+i+"進位值=");
           convert(n,i);
       System.out.println("")
       }/*X的2進位值=XXXXX
            X的3進位值=XXXXX
            X的4進位值=XXXXX
            X的5進位值=XXXXX
            X的6進位值=XXXXX
            X的7進位值=XXXXX
            X的8進位值=XXXXX
          */
    }
    static void convert(int n,int i){
        int j;
        if(n<0){
            System.out.print("-");
            n=-n;
        }
        j=n/i;
        if(j!=0) convert(j,i);
        System.out.print(n%i);
    }
}
編譯結果是沒甚麼語法上的錯誤
使用上也大致正常
想要請教老師有沒有更漂亮的寫法 或是說有沒有可能出現的漏洞我疏忽了

沒有留言:

張貼留言