魔术师发牌问题

来源:互联网 发布:别拿穿越不当工作知乎 编辑:程序博客网 时间:2024/04/25 13:06
/* * 说有一个魔术师,他表演发牌的魔术,他将十三张黑桃牌放在一堆。然后开始数数,第一次,他数1,然后翻开第一张,果然是黑桃A,然后将黑桃A放到牌堆外。然后魔术师继续数数,这次他数1,2,然后将数1的牌放到牌堆底,然后将数2的牌翻开,果然是黑桃2,然后将黑桃2放到一边。继续数1,2,3,果然每次都是对应的牌。请问:牌堆的原始顺序是什么? * StoryMonster 2016/7/14 */#include <iostream>using namespace std;int main(){    int cardHeal[13] = {0};    int currentCard = 1;    //当前想要翻的牌    int index=0;    while(currentCard<=13)    {        int currentNumber = 0;  //当前喊的数        while(1)        {            if(cardHeal[index] == 0)            {                currentNumber++;                if(currentNumber == currentCard) break;            }            index++;            if(index == 13) index = 0;        }        cardHeal[index] = currentCard;        currentCard++;    }    for(index=0;index<13;index++)    {        cout<< cardHeal[index] <<" ";    }    cout << endl;    return 0;}
0 0