📄 printint.java
字号:
/**一个健壮的数字打印程序;
* 一个可以打出任何进制的程序。
* */import java.io.BufferedReader;
import java.io.InputStreamReader;
public final class PrintInt {
private static final String DIGIT_TABLE="0123456789abcdefg";
//a=10 b=11 c=12 d=13 e=14 f=15 g=16 h=17 i=18 j=19 k=20 l=21
//m=22 n=23 o=24 p=25 q=26 r=27 s=28 t=29 u=30 v=31 w=32 x=33
//y=34 z=35
//A=36 B=37 C=38 D=39 E=40 F=41 G=42 H=43 I=44 J=45 K=46 L=47
//M=48 N=49 O=50 P=51 Q=52 R=53 S=54 T=55 U=56 V=57 W=58 X=59
//Y=60 Z=61
private static final int MAX_BASE =DIGIT_TABLE.length();
//Print n in any base,recursively
//Precondition :n>=0,2<=base<=MAX_BASE
private static void printIntRec (long n,int base){
if(n>=base)printIntRec(n/base,base);
System.out.print(DIGIT_TABLE.charAt((int)(n%base)));
}//Driver routine
public static void printInt(long n,int base){
if(base<=1|base>MAX_BASE)
System.out.println("Can'nt print in base "+base);
else{
if(n<0){
n=-n;
System.out.print("-");
}printIntRec(n,base);
}
}public static void main(String args[]){
try{BufferedReader input=new BufferedReader
(new InputStreamReader(System.in));
String ans="n";
while(!(ans.equalsIgnoreCase("y"))){
System.out.println("Enter the base:");
int base=Integer.parseInt(input.readLine());
System.out.println("Enter the number:");
long n=Long.parseLong(input.readLine());
System.out.println("The result is :");
printInt(n,base);
System.out.println("\nContinue(any key except y) or stop(y)");
ans=input.readLine();
}
}
catch(Exception e){
System.out.println("ERROR!");
}}}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -