日期:2014-05-20 浏览次数:20817 次
for (int i = 0; i < 1024; i++) { String s = Integer.toBinaryString(i); String o = ""; for (int j = 0; j < 10 - s.length(); j++) { o += "0"; } System.out.println((o + s).replace("1", "3").replace("0", "1")); }
------解决方案--------------------
for example
int[] a = {1, 3}; StringBuilder buf = new StringBuilder(); for (int i=0, t=i; i<1024; i++,t=i) { buf.delete(0, buf.length()); for (int j=0; j<10; j++) { buf.append(a[t%2]); t >>= 1; } System.out.println(buf); }
------解决方案--------------------
用的递归
public class Constantly {
private int index = 1;//控制循环次数
private int [] values = new int[10];//存储
public Constantly() {
/**
* 初始化数组
* */
for(int i=0;i<10;i++){
values[i] = 0;
}
change(values,0);
}
/**
* values存储每次得到的结果
* mark记录当前数组下标
* */
public void change(int [] values,int mark) {
if(mark==10) {
for(int i=0;i<10;i++) {
System.out.print(values[i]);
}
System.out.println("-----------------index:"+index);
index++;
return;
}
if(index>1024) {
return;
}
values[mark]=1;
change(values,mark+1);
values[mark] = 3;
change(values,mark+1);
}
public static void main(String[] args) {
new Constantly();
}
}
------解决方案--------------------
我简单的写一下,你自己调一下看对不
int k=0;
public void zhuhe()
{
K++;
long M=0;
for(int i=0;i<2;i++)
{
if(i==0)
{
M=M*10+1;
if(K<10)
zhuhe();
else
System.out.printf(M);
}
else
if(i==3)
{
M=M*10+3;
if(K<10)
zhuhe();
else
System.out.printf(M);
}
}
}
------解决方案--------------------
// 递归
static int[] unit = {1, 3};
static int no;
public static void m(int res, int level) {
if(level == 0) {
no++;
System.out.println(res);
return;
}
for(int i=0; i<unit.length; i++) {
res = res + unit[i]*(int)Math.pow(10, level-1);
m(res, level-1);
res = res - unit[i]*(int)Math.pow(10, level-1);
}
}