1/*2魔術師手中有a、2、3……j、q、k十三張黑桃撲克牌。在表演魔術前,魔術師已經將他們按照一定的順序疊放好
3(有花色的一面朝下)。魔術表演過程為:一開始,魔術師數1,然後把最上面的那張牌翻過來,是黑桃a;然後
4將其放到桌面上;第二次,魔術師數1、2;將第一張牌放到這些牌的最下面,將第二張牌翻轉過來,正好是黑桃2
5;第三次,魔術師數1、2、3;將第1、2張牌依次放到這些牌的最下面,將第三張牌翻過來正好是黑桃3;……
6直到將所有的牌都翻出來為止。問原來牌的順序是如何的。78
*/9 #include"
stdio.h
"10 #include"
stdlib.h"11
#define n 13
12 typedef struct
nodelinknode;
17//
建立乙個大小為
18 linknode*creatlist()
1933 s->next = head->next;
34 head->next->prior =s;
35free
(head);
36return s->next;
37}
38main()39
55}56if(p->num == 0)57
61}62int sign = 1
;63 p =head;
64while(p != head ||sign)
6570 printf("
%d\t
",p->num);
71 p = p->next;72}
73 }
魔術師發牌問題
說有乙個魔術師,他表演發牌的魔術,他將十三張黑桃牌放在一堆。然後開始數數,第一次,他數1,然後翻開第一張,果然是黑桃a,然後將黑桃a放到牌堆外。然後魔術師繼續數數,這次他數1,2,然後將數1的牌放到牌堆底,然後將數2的牌翻開,果然是黑桃2,然後將黑桃2放到一邊。繼續數1,2,3,果然每次都是對應的牌...
魔術師發牌問題
先搞清楚題意 注意按順序每翻到一張牌放到桌子上,不在手中了,其實是迴圈鍊錶的問題,可以在紙上模擬一下就可以得到牌開始的順序。1 一開始寫的比較麻煩 用兩個迴圈鍊錶,乙個放數字,乙個放序號,邊構造邊刪除,因為翻出來的牌已經放在一邊不在手上了,再用乙個card陣列存放開始的牌的順序。include st...
魔術師發牌問題
問題描述 魔術師手中有a 2 3 j q k十三張黑桃撲克牌。在表演魔術前,魔術師已經將他們按照一定的順序疊放好,有花色的一面朝下。魔術表演過程為 一開始,魔術師數1,然後把最上面的那張牌翻過來,是黑桃a 然後將其放到桌面上 第二次,魔術師數1 2 將第一張牌放到這些牌的最下面,將第二張牌翻轉過來,...