給定乙個整數n和乙個由不同大寫字母組成的字串str(長度大於5、小於12),每乙個字母在字母表中對應有乙個序數(a=1,b=2,…,z=26),從str中選擇5個字母構成密碼,例如選取的5個字母為v、w、x、y和z,他們要滿足v的序號-(w的序數)2+(x的序數)3-(y的序數)4+(z的序數)5=n。例如,給定的n=1、字串str為"abcdefghijkl",乙個可能的解是「fiecb」,因為6-92+53-34+25=1,但這樣的解可能有多個,最終結果是按字典序最大的那個,所以這裡的正確答案是「lkeba」.
每一行為n和str 輸入0結束
每一行對應相應密碼,沒有解就輸出no solution
1 abcdefghijkl
11700519 zayexiwovu
3072997 sought
1234567 thequickfrog
0lkeba
yoxuz
ghost
no solution
#include
#include
#include
#include
using
namespace std;
int array[13]
;int first =-1
;int aw[5]
;void
empty()
//清空函式
first =-1
;}void
solve
(int n ,string s1)
sort
(array, array + s1.
size()
);do}
}}}while
(next_permutation
(array, array + s1.
size()
));//全排列
if(first ==-1
)else
cout << endl;
empty()
;//清空,不影響下次結果。}}
intmain()
return0;
}
求解密碼問題C RJ503求解密碼問題
給定乙個整數n和乙個由不同大寫字母組成的字串str 長度大於5 小於12 每乙個字母在字母表中對應有乙個序數 a 1,b 2,z 26 從str中選擇5個字母構成密碼,例如選取的5個字母為v w x y和z,他們要滿足v的序號 w的序數 2 x的序數 3 y的序數 4 z的序數 5 n。例如,給定的...
C語言回溯法遞迴求解八皇后問題
時限 1000ms 記憶體限制 10000k 總時限 3000ms 描述 輸出8皇后問題所有結果。輸入 沒有輸入。輸出 每個結果第一行是no n 的形式,n表示輸出的是第幾個結果 下面8行,每行8個字元,a 表示皇后,表示空格。不同的結果中,先輸出第乙個皇后位置靠前的結果 第乙個皇后位置相同,先輸出...
回溯法 求解皇后問題
include include using namespace std static char queen 8 8 建立乙個棋盤 static int a 8 static int b 15 static int c 15 static int iqueennum 0 記錄總的棋盤狀態數 voidq...