要求:将非负十进制整数n转换成b进制。(其中b=2~16)
代码如下:
import java.util.List;
import java.util.Scanner;
/**
* @author YB
* @2019/5/30-20:56
*/
public class Demo1 {
private Scanner sc=new Scanner(System.in);
private int x;
private int y;
public String calculate(int a,int b){
String msg="";
String s="0123456789ABCDE";
if(a==0){
return "";
}
else{
msg=calculate(a/b,b);
if(a%b!=15) {
return msg + s.substring(a % b, a % b + 1);
}
else{
return msg+"F";
}
}
}
public void SystemIn(){
System.out.println("请输入一个整数:");
x=sc.nextInt();
while(x<=0){
System.out.println("请重新输入:");
x=sc.nextInt();
}
System.out.println("请输入您想转换的进制(最好在2-16之间哦!不然可能你又要输入一遍了哦):");
y=sc.nextInt();
while(y<2||y>18){
System.out.println("请重新输入!这次不要在调皮了哦!:");
y=sc.nextInt();
}
String msg=calculate(x,y);
System.out.print("结果为:");
System.out.println(msg);
}
public static void main(String[] args) {
Demo1 demo=new Demo1();
demo.SystemIn();
}
}