藍橋杯 撲克牌「魔術

2021-08-17 07:11:58 字數 1056 閱讀 2025

小明剛上小學,學會了第乙個撲克牌「魔術」,到處給人表演。魔術的內容是這樣的:

他手裡握著一疊撲克牌:a,2,....j,q,k 一共13張。他先自己精心設計它們的順序,然後正面朝下拿著,開始表演。

只見他先從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是a;然後再從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是2;......如此迴圈直到手中只有一張牌,翻開放桌子上,剛好是k。

這時,桌上牌的順序是:a,2,3,4,5,6,7,8,9,10,j,q,k---(7,a,q,2,8,3,j,4,9,5,k,6,10)

請你計算一下,小明最開始的時候手裡牌的順序是怎樣的。

把結果寫出來,逗號分割,小明「魔術」開始時,最下面的那張牌輸出為第乙個資料。

考場不提供撲克牌,你只能用計算機模擬了,撕碎草稿紙模擬撲克屬於作弊行為!另外,你有沒有把錄影倒著放過?很有趣的!回去試試!

正過程的第一步:從最底下拿一張牌到最上面。第二步:從最低下拿一張牌放到桌子上,

逆過程可以表示為,第一步:從桌子上拿一張牌到最底下。第二步,從最上面拿一張牌到最底下。

陣列從左到右分別表示最上面和最下面,初始狀態只有乙個k(13),然後定義乙個頭指標f,尾指標r,分別指向牌頂和牌底的下乙個,每次插入的時候,先把數值賦給牌底,牌底指標加1,然後把牌頂的牌放到牌底,牌頂指標加1,牌底指標再加1,可以想象,最後把1插進去的時候,f就是牌頂,而r仍然是牌底的下乙個

#includeusing namespace std;

int main()

for(int i=r-1;i>=f;i--)

coutint main()

if(sign==1)

} for(i=12;i>=0;i--)

cout《更新a,j,q,k的輸出

#includeusing namespace std;

int back(int n)

int main()

for(int i=r-1;i>=f;i--)elseelse

} cout

}

藍橋杯歷屆 巧排撲克牌

小明剛上小學,學會了第乙個撲克牌 魔術 到處給人表演。魔術的內容是這樣的 只見他先從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是a 然後再從最下面拿一張放到最 面,再從最下面拿一張翻開放桌子上,是2 如此迴圈直到手中只有一張牌,翻開放桌子上,剛好是k。這時,桌上牌的順序是 a,2,3,4...

撲克牌排序 趣味撲克牌

一提到撲克牌,我們就想到神秘的魔術表演,撲克牌上有很多形狀和數字,裡面蘊藏了很多數學知識哦!瞧 subway的小朋友們正在進行趣味撲克牌的遊戲呢!好多撲克牌啊!撲克牌中間怎麼是空的呢?哇,還有這麼小的撲克牌呢!一看到teacher手中的撲克牌,小傢伙們乙個個的都興奮起來,迫不及待想要分享自己的見解呢...

2012藍橋杯 初賽試題 巧排撲克牌

題目描述 小明剛上小學,學會了第乙個撲克牌 魔術 到處給人表演。魔術的內容是這樣的 他手裡握著一疊撲克牌 a,2,j,q,k 一共13張。他先自己精心設計它們的順序,然後正面朝下拿著,開始表演。只見他先從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是a 然後再從最下面拿一張放到最上面,再從...