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

一个算法
这个算法主要求状态结果种类,状态只有两种,0和1,具体如下:

当输入为1时:
0
1
状态结果为2种。

当输入为2时:
00
10
01
11
状态结果为4种。

当输入为3时:
000
100
010
001
110
011
101
111
状态结果为8种。


这里有个规律,都是2的N次方,这个在JAVA中要怎么写?




------解决方案--------------------
这个简单
public class StateTest {
public static void printState(int n) {
for (int i = 0; i < Math.pow(2, n); i++) {
String b=Integer.toBinaryString(i);
//补足位数
int length=b.length();
if(length<n){
for(int j=0;j<n-length;j++){
b="0"+b;
}
}
System.out.println(b);
}
}
public static void main(String args[]){
StateTest.printState(3);
}
}