这是一道3进制的问题。
我想遍历从0到2222222222,逢3进1如从0到22所有的数字为:
00
10
20
01
11
21
02
12
22本人算法如下:
public class Test { public static void main(String[] args) {
String str="00";
char[] ch=str.toCharArray();
int i=0;
while (!str.equals("22")) {
method(ch,i);
str=new String(ch);
System.out.println(str);
} }
private static void method(char[] c,int j){
int tem=Integer.parseInt(""+c[j])+1;
if(tem==3){
tem=0;
method(c,j+1);
}
c[j]=(""+tem).charAt(0);
tem=0;
}
}但上面的算法处理少位还可以,若处理10位以上数字的话超慢,希望各位大虾指点一下,有没有更快的算法(若有好的算法,一定给分,谢谢了)
我想遍历从0到2222222222,逢3进1如从0到22所有的数字为:
00
10
20
01
11
21
02
12
22本人算法如下:
public class Test { public static void main(String[] args) {
String str="00";
char[] ch=str.toCharArray();
int i=0;
while (!str.equals("22")) {
method(ch,i);
str=new String(ch);
System.out.println(str);
} }
private static void method(char[] c,int j){
int tem=Integer.parseInt(""+c[j])+1;
if(tem==3){
tem=0;
method(c,j+1);
}
c[j]=(""+tem).charAt(0);
tem=0;
}
}但上面的算法处理少位还可以,若处理10位以上数字的话超慢,希望各位大虾指点一下,有没有更快的算法(若有好的算法,一定给分,谢谢了)
解决方案 »
- 分享给新人,学习JAVA者进,达内培训的PDF,循序渐进,从基础到框架,一共82M!
- 继承问题
- 一个JFrame的问题,急!
- 麻烦大家帮小弟解决一下这样一个异常
- java用jxl操作excel时,excel表格线如何显示??
- 线程小程序,请大神们指点
- 在jb7中 请问如何取得密码文本框中的字符串
- 那有java方面的电子书看呀!!!多谢!!!!
- 帮我看看两个奇怪的exception
- Java call oracle 存储过程 丢失IN或OUT 参数:: 1
- 再发:用java的applet调用delphi封装第三方动态库函数的exe文件出错,急!!!!!分不够再加
- 如果你对Integer类熟悉的话 ,请进
pout(i);
}
} private static void pout( int num ){
int j;
String str = "";
while (num>0){
j = num % 3;
num = num / 3;
str = j + str;
}
System.out.println(str);
}
}
System.out.println(Integer.toString(i,3));
}
test1:10位数,用时:141毫秒test2:10位数,用时:406毫秒