private static String sort(int n,int b)
{
 String str="";
 String diChar="0123456789abcdef";
 if(n==0)
 {
 return "";
 }
 else
 {
 str=sort(n/b,b);
 return str+diChar.charAt(n%b);
 }
}n是一个数字,b是进制类型,这个算法完全看不懂,请各位大哥讲下原理,谢谢

解决方案 »

  1.   

    sort(12, 8)
    --->
    str = sort(1, 8);
        str = sort(0,8);
            return "";
        return "" + "1";
    return "1" + "4";
    Result:14
    就是迭代第取商+参数在十六个字符串中的位置
      

  2.   

    String diChar="0123456789abcdef";
    这个定义在方法里不好。
      

  3.   

    梦里楚香俩星咯,呵呵
    应该定义为main方法所在类的成员变量
    public static final String diChar = "o123456789abcdef";
    不然每次迭代都重新弄了一个,不过字符串常量是共享的,diChar重复定义了N次
      

  4.   

    直接使用Integer.toString(n,b)不是蛮好么?非要自己造轮子?