当前位置: 代码迷 >> J2EE >> 算数题,该怎么处理
  详细解决方案

算数题,该怎么处理

热度:289   发布时间:2016-04-22 03:41:31.0
算数题
用A,B ,C 来表示一个三进制的书,例如A十进制的0,以此类推A=0,B=1,C=2。BA=3,BC=5,BAAA=27最大位6位数,
也就是CCCCCC,用java完成此运算。

------解决方案--------------------
Java code
        String s = Integer.toString(728, 3);        byte[] bytes = s.getBytes();        for(int i = 0; i < bytes.length; i++){            System.out.println(bytes[i]);            bytes[i] = (byte)(bytes[i] + 17);        }        System.out.println(new String(bytes));
------解决方案--------------------
for example
Java code
public class csdn {    public static void main(String[] args) throws Throwable {        String s = "222222";        System.out.println(Integer.parseInt(s, 3));        System.out.println(toString(728, 3));    }    public static String toString(int n, int radix) {        char[] dig = {'A', 'B', 'C'};        if (radix > dig.length) {return "100000";}        String s = Integer.toString(n, radix);        StringBuilder buf = new StringBuilder();        for (char c : s.toCharArray()) {            buf.append(dig[c-'0']);        }        return buf.toString();    }}
------解决方案--------------------
String s = Integer.toString(728, 3);
byte[] bytes = s.getBytes();
for(int i = 0; i < bytes.length; i++){
System.out.println(bytes[i]);
bytes[i] = (byte)(bytes[i] + 17);
}
System.out.println(new String(bytes));

------解决方案--------------------
[code=Java][/code]
System.out.println("输入要处理的数字(最大值728):");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
Integer co = Integer.parseInt(s);
if(co <= 728){
String ss = Integer.toString(co, 3);
byte[] by = ss.getBytes();
for(int i=0; i<by.length; i++){
by[i] = (byte)(by[i] + ('A' - '0'));
}
System.out.println(new String(by));
}else
System.out.println("请输入不大于728的数!");
------解决方案--------------------
Java code
System.out.println("输入要处理的数字(最大值728):");        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));        String s = br.readLine();        Integer co = Integer.parseInt(s);        if(co <= 728){            String ss = Integer.toString(co, 3);            byte[] by = ss.getBytes();            for(int i=0; i<by.length; i++){                by[i] = (byte)(by[i] + ('A' - '0'));            }            System.out.println(new String(by));        }else            System.out.println("请输入不大于728的数!");
  相关解决方案