日期:2014-05-20  浏览次数:20763 次

用 1 3 这两个数字 可以组成个多少十位数字 并显示出来
没有思路啊

有没有会呢

谢谢啦

比如  
1111113131

3333313333

这样的



------解决方案--------------------
1024个
------解决方案--------------------
探讨

1024个

------解决方案--------------------
循环0到1023,转二进制。字符串替换。
------解决方案--------------------
Java code

        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
Java code
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);
}

}