一個數能整除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就過了。
代碼很簡單: