列舉演算法又叫做窮舉演算法。
□□□+□□□=□□□,將數字1-9分別填入9個□中,每個數字只能使用一次使得等式成立。
暴力窮舉法:
#include
#include
int main()
}printf("total = %d\n", total / 2);
system("pause");
return 0;
}標記法:用乙個book陣列來解決互不相等的問題。
#include
#include
int main()
//統計共出現了多少個不同的數
sum = 0;
for (i = 1; i <= 9; i++)
sum += book[i];
//如果正好出現了9個不同的數,並且滿足等式條件,則輸出
if (sum == 9 && a[1] * 100 + a[2] * 10 + a[3] + a[4] * 100 + a[5] * 10 + a[6] == a[7] * 100 + a[8] * 10 + a[9])
}printf("total = %d\n", total / 2);
system("pause");
return 0;
}
啊哈!演算法 之列舉
for i 1 i 9 i 這就是採用列舉的方法,把所有的可能性都進行了嘗試。對於形如這樣的火柴棍,如何在全部使用給定的火柴 m 24 後拼出a b c的等式呢?1.等式中存在固定不變的地方,就是加號與等號,他們一共佔4根。2.a a c這種,只能存在一次。3.a b c與b a c視為不同的兩組。...
演算法之暴力列舉(窮舉)
列舉法的基本思想是根據題目的部分條件確定答案的大致範圍,並在次範圍內對所有可能的情況逐一驗證,直到全部情況驗證完畢。若某個情況驗證符合題目的全部條件,則為本問題的乙個解 若全部情況驗證後都不符合題目的全部條件,則本題無解。也稱為窮舉法。題目 某人有n袋金幣,其中第i袋內金幣的數量是ai。現在他決定選...
啊哈!演算法 列舉之炸彈人
炸彈人 現有關卡 遊戲者只有一枚炸彈,且炸彈可以殺死殺傷範圍內所有敵人。請問炸彈放在哪個位置,可以消滅最多的敵人。思路 首先將地圖模型化。牆用 表示 敵人用g表示 空地用.表示。炸彈只能放在空地上。如 13行13列 gg.ggg ggg.g g g g g g g g gg.ggg.gg g g g...