12345這五個數,列印出它所有的組合。4不能在中間,3和5不能挨著
public class TestIntNumber {
private int[] numbers = new int[] { 1, 2, 3, 4, 5 };
public int n;
private String lastResult = "";
private boolean validate(String s) {
if (s.compareTo(lastResult) <= 0)
return false;
if (s.charAt(2) == '4')
return false;
if (s.indexOf("35") >= 0 || s.indexOf("53") >= 0)
return false;
return true;
}
public void list(String index, String result) {
for (int i = 0; i < numbers.length; i++) {
if (index.indexOf(i + 48) < 0) {
String s = result + String.valueOf(numbers[i]);
if (s.length() == numbers.length) {
if (validate(s)) {
System.out.println(s);
lastResult = s;
n++;
}
break;
}
list(index + String.valueOf(i), s);
}
}
}
public static void main(String[] args) {
TestIntNumber t = new TestIntNumber();
t.list("", "");
System.out.println("總數:" + t.n);
}
}
private int[] numbers = new int[] { 1, 2, 3, 4, 5 };
public int n;
private String lastResult = "";
private boolean validate(String s) {
if (s.compareTo(lastResult) <= 0)
return false;
if (s.charAt(2) == '4')
return false;
if (s.indexOf("35") >= 0 || s.indexOf("53") >= 0)
return false;
return true;
}
public void list(String index, String result) {
for (int i = 0; i < numbers.length; i++) {
if (index.indexOf(i + 48) < 0) {
String s = result + String.valueOf(numbers[i]);
if (s.length() == numbers.length) {
if (validate(s)) {
System.out.println(s);
lastResult = s;
n++;
}
break;
}
list(index + String.valueOf(i), s);
}
}
}
public static void main(String[] args) {
TestIntNumber t = new TestIntNumber();
t.list("", "");
System.out.println("總數:" + t.n);
}
}
相關文章
- 12345這五個數,列印出它所有的組合。4不能在中間,3和5不能挨著(實現二)
- 求陣列中k個數的所有組合陣列
- HDU-1792-( 兩個互質的數線性組合最大不能表示的數和不能表示數的個數)
- 設計一個程式,列印出1-200之間的斐波那契數列
- HDU 1792 - A New Change Problem(規律,最大不能組合數及其個數)
- 不學無數——組合模式模式
- 組合數字首和
- 有的服務不能在nvidia-docker中正常呼叫顯示卡問題排查Docker
- 輸出一個百位數,1-5之間所有組合型別,數字不重複型別
- 組合數學筆記-特殊計數數列筆記
- 【力扣】組合總和3(組合的去重)力扣
- 4. 兩個排序陣列的中位數排序陣列
- <組合語言> 5. [BX] 和 loop | 實驗 4 : [BX] 和 loop 的使用組合語言OOP
- 【Leetcode】18. 4Sum 給定陣列中的4個元素之和等於給定值的所有組合LeetCode陣列
- 輸出1-100之間的不能被5整除的數,每5個一行
- LeetCode 4. 兩個排序陣列的中位數LeetCode排序陣列
- LeetCode-4. 兩個排序陣列的中位數LeetCode排序陣列
- OI中組合數學公式和定理90%殲滅公式
- 12345
- 【數學】組合數學 - 排列組合
- 每日一題(一):找出兩個陣列中共有的數字每日一題陣列
- 企業才能在這個競爭激烈的社會中立於不敗之地。
- 列印出ckpt裡的所有變數和值變數
- 一個陣列和另一個陣列比較,如果第一個陣列裡面有的就不新增了陣列
- 斐波那契數列9數4層4解平方魔法塔(5)
- 統計整數區間[N,M](N,M<100000)中所以非偶數的合數個數,並輸出這個數。
- 4. 尋找兩個正序陣列的中位數陣列
- hdu 5698 瞬間移動 【質因數分解求組合數】
- 刷 LeetCode 跟著這個系列就行啦----兩數之和LeetCode
- 斐波那契數列:7數5層魔法塔(4)
- Python中已有的多個變數批量(動態)使用Python變數
- 斐波那契數列9數4層4解平方魔法塔(3)
- Java自學並不適合所有的人Java
- Codeforces1420 D. Rescue Nibel!(區間,組合數)
- JavaScript中的繼承和組合JavaScript繼承
- 團隊4(先這麼寫著
- MySQL 組合索引不生效MySql索引
- 這5個Ansible 模組你喜歡嗎