十进制转换为R进制

例:23(10) = 1B
十进制转换为R进制_第1张图片
十进制转换为R进制_第2张图片
十进制转换为R进制_第3张图片

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

public class Main {

    public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        Stack stack = new Stack();//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]);
        }
    }
}

你可能感兴趣的:(java)