數學的東西喔。

7 的倍數判別法 :

從個位數開始,每 3 位 組成一個三位數,奇數組 和 偶數組 分別相加後 相減,若是 7 的倍數,則此數是 7 的倍數。

ex: 9095099055

->  9 095 099 055

奇數組: 55 + 95 = 150

偶數組: 99 + 9   = 108

相減: 150 - 108 = 42

-> 9095099055 是 7 的倍數,因為 42%7=0。

 

題目要 2, 3, 5, 7的公倍數,所以至少要 210 (n>=3)。

因為要愈小且不影響 3, 7 的倍數判別,所以 X 都填 0 就好。

歸納後得 :

1. n%3 == 0

a. (n/3)%2 == 1

     100 XXX 110

b. (n/3)%2 == 0

     100 XXX XXX 170

 

2. n%3 == 1

a. (n/3)%2 == 1

     1 XXX 050

b. (n/3)%2 == 0

     1 XXX  020

 

3. n%3 == 2

a. (n/3)%2 == 1

     10 XXX 080

b. (n/3)%2 == 0

     1 XXX  200

O(1) 解 + O(n)構造。

 

我的code

http://ideone.com/cERypP

文章標籤
創作者介紹

jghs1328

jghs1328 發表在 痞客邦 PIXNET 留言(0) 人氣()