十進制轉換爲R進制

例:23(10) = 1B
這裏寫圖片描述
這裏寫圖片描述
這裏寫圖片描述

import java.util.Scanner;
import java.util.Stack;

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Stack<Integer> stack = new Stack<Integer>();//Stack stack = new Stack();
        char ss[] = {'A', 'B', 'C', 'D', 'E', 'F'};
        int n = scan.nextInt(), r = scan.nextInt();
        boolean b = false;
        if(n<0) {
            b = true;
            n = -n;
        }
        if(n == 0) {
            System.out.println("0");
            return;
        }

        while(n>0) {            
            stack.push(n%r);
            n /= r;         
        }
        if(b)
            System.out.print("-");
        while(!stack.isEmpty()) {
            int tmp = (int) stack.pop();
            if(tmp<10)
                System.out.print(tmp);
            else
                System.out.print(ss[tmp-10]);
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章