有另一种斐波那契数列:F(0)=7,F(1)=11,F(n)=F(n-1)+F(n-2) (n>=2)
输入:n
输出:F(n)是否能被3整除
| 样例输入 | 样例输出 |
|---|---|
| 0 | False |
| 1 | False |
| 2 | True |
| 3 | False |
| 4 | False |
| 5 | False |
解决这个问题最直接的方法是先求出F(n)在检验是否能被3整除。但是稍微再往后计算几项便可发现规律:从第2项开始,每过4个出现一次能被3整除的值。所以代码便非常简单:
def fDivisibleByThree(n):
return n % 4 == 2
事实上,类似的线性递推数列除以任何整数的余数构成的数列都是周期性的,详情可以参考这里。
在手机上阅读或分享本文请扫描以下二维码:
Comments