你的任务是算出所有可能情况,每个答案占一行。
方法一:
import java.math.*;
public class Main
{
public static void main(String args[])
{
String str="";
kk(str,0);
}
public static void kk(String str,int i)
{
if(i==10)
{
Check(str);return ;
}
kk(str+1,i+1);
kk(str+0,i+1);
}
public static void Check(String str)
{
int count =10;
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)=='0')count-=(i+1);
else count*=2;
}
if(count==100)System.out.println(str);
}
}
方法二:
import java.util.*;
public class Main
{
public static void main(String args[])
{
for(int q=0;q<=1;q++)
for(int w=0;w<=1;w++)
for(int e=0;e<=1;e++)
for(int r=0;r<=1;r++)
for(int t=0;t<=1;t++)
for(int y=0;y<=1;y++)
for(int u=0;u<=1;u++)
for(int i=0;i<=1;i++)
for(int o=0;o<=1;o++)
for(int p=0;p<=1;p++)
{
String str=""+q;
str=str+w;str=str+e;str=str+r;str=str+t;
str=str+y;str=str+u;str=str+i;str=str+o;
str=str+p;
Check(str);
}
}
public static void Check(String str)
{
int count =10;
for(int i=0;i<str.length();i++)
{
if(str.charAt(i)=='0')count-=(i+1);
else count*=2;
}
if(count==100)System.out.println(str);
}
}
1011010000
0111010000
0010110011