列舉就是猜測每一種可能性,比如1 + [ ] = 3,如果不用代數計算的話,那麼就把0~9都嘗試一遍,即可得出答案。
考慮這樣的乙個問題,[ ][ ]+[ ][ ] = 51 空格中,數字隨意填寫,可重複,不考慮0。
我們通過四層for迴圈,分別遍歷1~9暴力列舉所有數字組合可能性,來得出答案。
#include #include #include int main()
}} }
system("pause");
return 0;
}
執行結果是這樣的:
這是通過不斷呼叫自己來實現的列舉,他非要重要,這種遞迴呼叫可以模擬無限個for。
#include #include #include int b[10];
void a(int s)
for (int i = 1; i <= 9; i++) //遍歷1到9
return;
}int main()
其結果和之前一樣
演算法(資料結構)
空間不夠儲存 給40億個不重複的unsigned int的整數,沒排過序的,然後再給乙個數,如何快速判斷這個數是否在那40億個數當中 40億個數空間儲存的問題 利用對映 分析 unsigned 範圍是2 32 40億大約大約4g個數不到,常規方法肯定是不行的 我們你可以利用 伴隨陣列 那種思想利用記...
演算法 資料結構
演算法是程式的核心,演算法的好壞直接決定了程式的好壞 基礎的幾種演算法 二分查詢 氣泡排序 插入排序 選擇排序 快速排序 二分查詢 假設資料是按公升序排序的,對於給定值x,從序列的中間位置開始比較,如果當前位置值等於x,則查詢成功 若x小於當前位置值,則在數列的前半段中查詢 若x大於當前位置值則在數...
演算法資料結構筆記 快速排序
快速排序通過左右兩邊各指定乙個指標,不斷向中間靠攏,如果左邊的指標找到比基準點大的,或者右邊的指標找到比基準點小的,就把他們交換,基準點一般是陣列的第乙個的值。左右指標指向同乙個值,就把這個值和基準點交換。我們就找到了基準點本來的的位置 很顯然 雖然順序不對,但他的左邊都是比他小的,右邊都是比他大的...