有另一种斐波那契数列: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