第一題
有1-9 9個數,選取3個數組成以下格式:? + ? = ?
數字只能用一次,不能重複
/**
* 有1-9 9個數,選取3個數組成以下格式:
* ? + ? = ?
* 數字只能用一次,不能重複
*/public
class
demo1}}
}}
第二題
有1-9 9個數,選取3個數組成以下格式:?? + ?? = ??
數字只能用一次,不能重複
如:12+35=47
public
class
demo2}}
}}}}
}}
第三題
有1-9 9個數,選取3個數組成以下格式:??? + ??? = ???
數字只能用一次,不能重複
如:124+659=783
public
class
demo3}}
}}}}
}}}}
}
3個題做下來是不是覺得**非常繁瑣和冗餘,這時候就要考慮一些演算法了。下面我就來講講乙個演算法。
又有乙個題,有整數1,2,3.對這三個數進行全排列,輸出所有的情況。一般情況下就可以使用3個for迴圈進行迴圈排列,但很顯然這就顯得比較的笨重,這時候就可以使用深度優先搜尋演算法。如 123 132 213
231 321 312
/**
* 深度優先搜尋演算法
*/public
class
demo4
system.out.
println
("\n");
}for
(int i =
0; i < max; i++)}
}public
static
void
main
(string[
] args)
}
第二題
就是剛剛的第三題,也可以使用深度優先搜尋演算法
有1-9 9個數,選取3個數組成以下格式:??? + ??? = ???
數字只能用一次,不能重複
如:124+659=783
/**
* 有1-9 9個數,選取3個數組成以下格式:
* ??? + ??? = ???
* 數字只能用一次,不能重複
* 如:124+659=783
* 使用深度優先搜尋演算法
*/public
class
demo5
//先把所有全排列的結果全部列出來
for(
int i =
0; i < max; i++)}
}public
static
void
main
(string[
] args)
}
經典搜尋演算法 深度優先搜尋 暴力搜尋
訓練題目暴力搜尋題目描述 現有長度為n的數列a和整數m。請編寫乙個程式,判斷a中任意幾個元素相加是否能得到m。a中每個元素只能使用一次。數列a以及用作問題的q個mi由外界輸入,請對每個問題輸出yes或no。輸入 第一行輸入n,第二行輸入代表a的n個整數,第三行輸入q,第四行輸入q個整數mi。輸出 輸...
深度優先搜尋演算法
include include define vertexnum 9 struct node typedef struct node graph struct node head vertexnum 定義圖形結構 int visited vertexnum 頂點陣列 深度優先搜尋 void dfs ...
深度優先搜尋演算法
今天我們來複習一下萬能的搜尋演算法之深度優先搜尋演算法。深度優先搜尋演算法顧名思義就是按照樹的延伸不停的往下搜尋,直到樹的盡頭之後再一步一步的回溯回來。好吧,我們直接問你乙個問題,給你乙個數n,讓你輸出從1到這個樹的全排列,你會怎麼寫,會不會想到去用若干個for迴圈?好吧,你肯定錯了,其實他考的就是...