【发布时间】:2015-04-20 11:39:47
【问题描述】:
我需要生成所有可能的 16 个字符的字符串。字符只能是“a”或“b”。我怎么做?我知道有 2^16 种可能性。
这是我尝试使用的代码:
public class Query5 {
public static void main(String[] args){
//Query5
String s="";
String [] hardCoded = {"16","13","3","14","11","9","4","6","15","12","2","10","8","5","1","7"};
for (int i=0; i<2; i++)
{
if (i==0)
s=s.concat("a");
else if (i==1)
s=s.concat("b");
for (int c=0; c<2; c++)
{
if (c==0)
s=s.concat("a");
else if (c==1)
s=s.concat("b");
for (int d=0; d<2; d++)
{
if (d==0)
s=s.concat("a");
else if (d==1)
s=s.concat("b");
for (int e=0; e<2; e++)
{
if (e==0)
s=s.concat("a");
else if (e==1)
s=s.concat("b");
for (int f=0; f<2; f++)
{
if (f==0)
s=s.concat("a");
else if (f==1)
s=s.concat("b");
for (int g=0; g<2; g++)
{
if (g==0)
s=s.concat("a");
else if (g==1)
s=s.concat("b");
for (int h=0; h<2; h++)
{
if (h==0)
s=s.concat("a");
else if (h==1)
s=s.concat("b");
for (int j=0; j<2; j++)
{
if (j==0)
s=s.concat("a");
else if (j==1)
s=s.concat("b");
for (int k=0; k<2; k++)
{
if (k==0)
s=s.concat("a");
else if (k==1)
s=s.concat("b");
for (int l=0; l<2; l++)
{
if (l==0)
s=s.concat("a");
else if (l==1)
s=s.concat("b");
for (int m=0; m<2; m++)
{
if (m==0)
s=s.concat("a");
else if (m==1)
s=s.concat("b");
for (int z=0; z<2; z++)
{
if (z==0)
s=s.concat("a");
else if (z==1)
s=s.concat("b");
for (int o=0; o<2; o++)
{
if (o==0)
s=s.concat("a");
else if (o==1)
s=s.concat("b");
for (int p=0; p<2; p++)
{
if (p==0)
s=s.concat("a");
else if (p==1)
s=s.concat("b");
for (int q=0; q<2; q++)
{
if (q==0)
s=s.concat("a");
else if (q==1)
s=s.concat("b");
for (int r=0; r<2; r++)
{
if (r==0)
s=s.concat("a, ");
else if (r==1)
s=s.concat("b, ");
System.out.println(s);
System.out.println(" ");
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
【问题讨论】:
-
这是什么编程语言?
-
生成所有 16 位整数。将每个转换为二进制。将 0 替换为 a,将 1 替换为 b。
-
你在用电脑吗?您想在屏幕上显示所有这些字符串,还是将它们存储在堆栈或文件中?你知道如何编写简单的计算机程序吗?你能用 3 个字符解决这个问题吗? 2? 1 个?
-
@Beta 我第一次看到评论者提出的问题比实际的海报多...
-
@AlbertRenshaw:是的,这通常不是一个好兆头。