转自Italink
大佬的代码很不错 ,我就是不懂find这个函数在干嘛
#include
#include
using namespace std;
void search(int n,int m,string key) {
if (n)
search(n - 1, m, key + "-");
if (m)
search(n, m - 1, key + "o");
if (n == 0 && m == 0)
cout << key << endl;
}
void find(int n,int begin, string key) {
if (n == 0)
cout << key << endl;
for (int i = begin; i < key.size(); i++) {
if (key[i] == 'o') {
key[i] = '-';
find(n - 1, i + 1, key);
key[i] = 'o';
}
}
}
int main(){
int n = 2, m = 2;
search(2, 2, ""); //元素搜索
cout << "--------------------" << endl;
find(2, 0, string(n + m, 'o')); //位置搜索
return 0;
}