題目描述:
小明剛上小學,學會了第乙個撲克牌「魔術」,到處給人表演。魔術的內容是這樣的:
他手裡握著一疊撲克牌:a,2,....j,q,k 一共13張。他先自己精心設計它們的順序,然後正面朝下拿著,開始表演。
只見他先從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是a;然後再從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是2;......如此迴圈直到手中只有一張牌,翻開放桌子上,剛好是k。
這時,桌上牌的順序是:a,2,3,4,5,6,7,8,9,10,j,q,k
請你計算一下,小明最開始的時候手裡牌的順序是怎樣的。
把結果寫出來,逗號分割,小明「魔術」開始時,最下面的那張牌輸出為第乙個資料。
考場不提供撲克牌,你只能用計算機模擬了,撕碎草稿紙模擬撲克屬於作弊行為!另外,你有沒有把錄影倒著放過?很有趣的!回去試試!
題目分析:
根據題目中的最後一句話的提示,應該使用逆向思維,從結果出發求出原始序列;
將第i張牌放到桌子上的順序為:
將第i-1張牌,從最下面拿到最上面,然後將第i張牌拿出來,放到桌子上。
所以,反過來的話,要將第i張牌放回手中的順序是:
先將第i張牌放到手中,然後再將最上面的牌拿到最下面。
程式**:
#includeusing namespace std;
void fun(int * a)
; int temp;
for(int i=0;i<13;i++)
{ b[i] = a[12-i]; //將撲克牌放回
if(i==0)continue;
temp = b[0];
for(int j=0;j
輸出結果:
10,6,k,5,9,4,j,3,8,2,q,a,7
藍橋杯歷屆 巧排撲克牌
小明剛上小學,學會了第乙個撲克牌 魔術 到處給人表演。魔術的內容是這樣的 只見他先從最下面拿一張放到最上面,再從最下面拿一張翻開放桌子上,是a 然後再從最下面拿一張放到最 面,再從最下面拿一張翻開放桌子上,是2 如此迴圈直到手中只有一張牌,翻開放桌子上,剛好是k。這時,桌上牌的順序是 a,2,3,4...
2012 藍橋杯 初賽試題 大數乘法
大數乘法 對於32 位字長的機器,大約超過 20億,用 int型別就無法表示了,我們可以選擇 int64 型別,但無論怎樣擴充套件,固定的整數型別總是有表達的極限!如果對超級大整數進行精確運算呢?乙個簡單的辦法是 僅僅使用現有型別,但是把大整數的運算化解為若干小整數的運算,即所謂 分塊法 如圖 1....
2012藍橋杯 初賽試題 奪冠概率
題目描述 足球比賽具有一定程度的偶然性,弱隊也有戰勝強隊的可能。假設有甲 乙 丙 丁四個球隊。根據他們過去比賽的成績,得出每個隊與另乙個隊對陣時取勝的概率表 甲 乙 丙 丁 甲 0.1 0.3 0.5 乙 0.9 0.7 0.4 丙 0.7 0.3 0.2 丁 0.5 0.6 0.8 資料含義 甲對...