算法-回溯相關(guān)問題-生成所有n位長的二進(jìn)制字符串 Java版
生成所有n位長的二進(jìn)制字符串。假設(shè)A[0…n-1]是一個大小為n的數(shù)組。文章來源地址http://www.zghlxwxcb.cn/news/detail-602989.html
public class Binary3 {
public static void main(String[] args) {
int n = 3;
binary(n, new int[n]);
}
public static void binary(int n, int[] arr) {
if (n < 1) {
// n 小于 1時,直接打印字符串
printArr(arr);
} else {
// 步驟一:生成字符串,從后往前生成,當(dāng)前值為0
arr[n - 1] = 0;
//
// 步驟二:當(dāng)前節(jié)點(diǎn)(0值)生成后,再生成前一個節(jié)點(diǎn)的值
binary(n - 1, arr);
// 步驟三:因?yàn)槭嵌M(jìn)制串,同時存在0和1兩個值,所以一個節(jié)點(diǎn)即要生成0,也要生成1
arr[n - 1] = 1;
// 步驟四:當(dāng)前節(jié)點(diǎn)(1值)生成后,再生成前一個節(jié)點(diǎn)的值
binary(n - 1, arr);
}
}
private static void printArr(int[] arr) {
for (int i = 0; i < arr.length; i++) {
System.out.print(arr[i]);
}
System.out.print("\n");
}
}
文章來源:http://www.zghlxwxcb.cn/news/detail-602989.html
到了這里,關(guān)于算法-回溯相關(guān)問題-生成所有n位長的二進(jìn)制字符串 Java版的文章就介紹完了。如果您還想了解更多內(nèi)容,請?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!