撲克序列 藍橋杯

2021-07-10 13:42:09 字數 1478 閱讀 7708

請通過瀏覽器提交答案。「a」一定不要用小寫字母a,也不要用「1」代替。字元間一定不要留空格。

一直感覺這樣的填空題應該能用暴力方法破解就用暴力方法解,因為暴力方法思路簡單,容易實現,而且因為是填空題,對程式執行時間沒有限制,這樣就可以省下設計漂亮演算法所花費的時間。

這道題也是用暴力演算法解決。用乙個長度為8的陣列模擬牌的序列,用八重迴圈遍歷所有的牌可能的排列順序,然後判斷是否滿足題目中的要求,若滿足則輸出。

#include #include using namespace std;

char para[8];

int findit(char a,int index)

}int main()

; for(int i=0;i<8;i++)

{para[0] = card[i];

for(int i2=0;i2<8;i2++)

{if(i2==i)continue;

para[1] = card[i2];

for(int i3=0;i3<8;i3++)

{if(i3==i||i3==i2)continue;

para[2] = card[i3];

for(int i4=0;i4<8;i4++)

{if(i4==i||i4==i2||i4==i3)continue;

para[3] = card[i4];

for(int i5=0;i5<8;i5++)

{if(i5==i||i5==i2||i5==i3||i5==i4)continue;

para[4] = card[i5];

for(int i6=0;i6<8;i6++)

{if(i6==i||i6==i2||i6==i3||i6==i4||i6==i5)continue;

para[5] = card[i6];

for(int i7=0;i7<8;i7++)

{if(i7==i||i7==i2||i7==i3||i7==i4||i7==i5||i7==i6)continue;

para[6] = card[i7];

for(int i8=0;i8<8;i8++)

{if(i8==i||i8==i2||i8==i3||i8==i4||i8==i5||i8==i6||i8==i7)continue;

para[7] = card[i8];

int in1 = findit('a',0);

int in2 = findit('a',in1+1);

int in3 = findit('2',0);

int in4 = findit('2',in3+1);

int in5 = findit('3',0);

int in6 = findit('3',in5+1);

int in7 = findit('4',0);

int in8 = findit('4',in7+1);

//cout<

答案:2342a3a4

藍橋杯 撲克序列

a a 2 2 3 3 4 4,一共4對撲克牌。請你把它們排成一行。要求 兩個a中間有1張牌,兩個2之間有2張牌,兩個3之間有3張牌,兩個4之間有4張牌。請填寫出所有符合要求的排列中,字典序最小的那個。例如 22aa3344 比 a2a23344 字典序小。當然,它們都不是滿足要求的答案。請通過瀏覽...

藍橋杯結果填空 撲克序列

a a 2 2 3 3 4 4,一共4對撲克牌。請你把它們排成一行。要求 兩個a中間有1張牌,兩個2之間有2張牌,兩個3之間有3張牌,兩個4之間有4張牌。請填寫出所有符合要求的排列中,字典序最小的那個。例如 22aa3344 比 a2a23344 字典序小。當然,它們都不是滿足要求的答案。請通過瀏覽...

第五屆藍橋杯 撲克序列

問題描述 a a 2 2 3 3 4 4,一共4對撲克牌。請你把它們排成一行。要求 兩個a中間有1張牌,兩個2之間有2張牌,兩個3之間有3張牌,兩個4之間有4張牌。請填寫出所有符合要求的排列中,字典序最小的那個。例如 22aa3344 比 a2a23344 字典序小。當然,它們都不是滿足要求的答案。...