16 | 17 | 18 |
19 | 20 | 21 |
22 | 23 | 24 |
25 | 26 | 27 |
28 | 29 | 30 |
|
|
8 | 9 | 10 |
11 | 12 | 13 |
14 | 15 | 24 |
25 | 26 | 27 |
28 | 29 | 30 |
|
|
4 | 5 | 6 |
7 | 12 | 13 |
14 | 15 | 20 |
21 | 22 | 23 |
28 | 29 | 30 |
|
|
2 | 3 | 6 |
7 | 10 | 11 |
14 | 15 | 18 |
19 | 22 | 23 |
26 | 27 | 30 |
|
|
1 | 3 | 5 |
7 | 9 | 11 |
13 | 15 | 17 |
19 | 21 | 23 |
25 | 27 | 29 |
|
|
第四張 |
第三張 |
第二張 |
第一張 |
第零張 |
上面卡片中的數字其實是照二進位的規律來排的,什麼是二進位呢?我們平常用的數字表示法(比如說卡片中顯示出的數字)是十進位,也就是每位數只能0~9,10以上就要進位,
而二進位就是每位數只能0~1,2以上就要進位,如:
十進位 |
二進位 |
1 |
1 |
2 |
10 |
3 |
11 |
4 |
100 |
5 |
101 |
6 |
110 |
7 |
111 |
8 |
1000 |
... |
... |
29 |
11101 |
30 |
11110 |
我們把不足五位數的用零補足五位數,如:2 -> 10 -> 00010,而這五位數就各代表一張卡片,是0就表示不出現,是1就表示出現,如:5 -> 00101出現在第二跟第零張卡片。
有了這個規律,程式只要倒著推算回去,就知道你想的是什麼數啦!設某數有出現在第N張卡片,算式:2的N次方,將有出現的卡片都算2的N次方後相加就是你想的數了。例:2的二次方+2的零次方= 4+1= 5。