小明剛上小學,學會了第乙個撲克牌「魔術」,到處給人表演。魔術的內容是這樣的:
他手裡握著一疊撲克牌: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 然後再從最下面拿一張放到最上面,再從...