天天看點

sgu 105 Div 3

    一個數能整除3當且僅當各位數之和能整除3。

    有了這個規律就好辦了, 但是呢,仔細一看, n太大了, 都到 2^31 了。是以簡單的模拟肯定不行。

    這種貌似像數論的題,一時找不到好辦法,就打表!

    打表出來是這個樣子

    1 0

    2 1

    3 2

4 2

    5 3

    6 4

    7 4

  8 5

    9 6

    10 6

    很有規律啊,1,22,3,44……

如果我們把每三個看成一個(不算1),那麼就是每三個元素增加2

    于是首先想到是不是 n/3*2 呢?

實驗幾次發現,不可行,有些不符合,但是我們的思路應該是正确的,仔細一想,由于整除的原因,有精度問題,是以我們先乘後除,可以很大程度上減小這種誤差,我直接把表達式換了一下位置

n*2/3就過了。

    代碼很簡單: