這數列怎麼定義的==????
https://www.google.com.tw/#q=Strobogrammatic+numbers
本來一直看不懂題意,看了樓上上的網址,自己再蒐尋相關網站,得到了如下一些心得,程式有空再寫
若有因看到此文而寫出的,也可以寄程式給我參考哦
如果只有1位數,只有3個 {0,1,8}、2位數有四個{11,69,88,96}、
3位數有12個{最左及最右為2位數的4種1x1, 6x9, 8x8, 9x6},中間x 為1位數的3種,所以4*3 共 12個
除了 前3位 分別為 3,4,12個之外,
從 4位數 ~ 17位數 ,k位數的個數為 (k-2位)的個數 * 5
又第2位(即xx的第1個x) 0,1,6,8,9五個數字平均分配
每右移1位分平均分配
例如 4 位數 為{1xx1, 6xx9, 8xx8, 9xx6 } 中間的 xx 同2位數的xx 4種之外也可以使用 00 所以是 5種,4位數共 4x5=20個
5位數為 {1xxx1, 6xxx9, 8xxx8, 9xxx6 } 中間的 xxx 同3位數的{二位4種*一位3種}改為(二位多0x0)=>{5x3)
所以5位數的 xxx為 15種, 4x15 = 60 個
依此算法…
6位數共有 100 個 : 5*20 、 7位數共有 300 個 : 5*60、 8位數共有 500 個 : 5*100 (6位數的個數)
9位數共有 1500 個 : 5*300 、 10位數共有 2500 個 : 5*500、 11位數共有 7500 個 : 5*500 (9位數的個數)
6位數共有 100 個 : 5*20 、 7位數共有 300 個 : 5*60、 8位數共有 500 個 : 5*100 (6位數的個數)
...
15位數共有 187500個 : 、 16位數共有 312500個 : 、 17位數共有 937500個 : 5*187500 (15位數的個數)
只要先算出1~17位數的個數,就可以求出 序號 n 是幾位數,然後使用遞迴吧
[ 每次降 2 位(左右邊需配對) {0?0,1?1,6?9,8?8,9?6} 但最外層不可以00 ]
這數列怎麼定義的==????
https://www.google.com.tw/#q=Strobogrammatic+numbers
本來一直看不懂題意,看了樓上上的網址,自己再蒐尋相關網站,得到了如下一些心得,程式有空再寫
若有因看到此文而寫出的,也可以寄程式給我參考哦如果只有1位數,只有3個 {0,1,8}、2位數有四個{11,69,88,96}、
3位數有12個{最左及最右為2位數的4種1x1, 6x9, 8x8, 9x6},中間x 為1位數的3種,所以4*3 共 12個
除了 前3位 分別為 3,4,12個之外,
從 4位數 ~ 17位數 ,k位數的個數為 (k-2位)的個數 * 5
又第2位(即xx的第1個x) 0,1,6,8,9五個數字平均分配
每右移1位分平均分配
例如 4 位數 為{1xx1, 6xx9, 8xx8, 9xx6 } 中間的 xx 同2位數的xx 4種之外也可以使用 00 所以是 5種,4位數共 4x5=20個
5位數為 {1xxx1, 6xxx9, 8xxx8, 9xxx6 } 中間的 xxx 同3位數的{二位4種*一位3種}改為(二位多0x0)=>{5x3)
所以5位數的 xxx為 15種, 4x15 = 60 個依此算法…
6位數共有 100 個 : 5*20 、 7位數共有 300 個 : 5*60、 8位數共有 500 個 : 5*100 (6位數的個數)
9位數共有 1500 個 : 5*300 、 10位數共有 2500 個 : 5*500、 11位數共有 7500 個 : 5*500 (9位數的個數)
6位數共有 100 個 : 5*20 、 7位數共有 300 個 : 5*60、 8位數共有 500 個 : 5*100 (6位數的個數)
...
15位數共有 187500個 : 、 16位數共有 312500個 : 、 17位數共有 937500個 : 5*187500 (15位數的個數)
只要先算出1~17位數的個數,就可以求出 序號 n 是幾位數,然後使用遞迴吧
[ 每次降 2 位(左右邊需配對) {0?0,1?1,6?9,8?8,9?6} 但最外層不可以00 ]
位 個
6 100
7 300
8 500
9 1500
10 2500
11 7500
12 12500
13 37500
14 62500
15 187500
16 312500
17 937500
18 1562500