【问题描述】
斐波那契数列的递推公式为:Fn = Fn−1 + Fn−2,其中 F1 = F2 = 1。
请问,斐波那契数列的第 1 至 202202011200 项(含)中,有多少项的个位是 7。
【解题】
如果正常跑循环,会花费很长时间。如果用递归就会溢出。所以就选择找规律。
【代码】
Java:
public class A {
public static void main(String[] args) {
int a = 1;
int b = 1;
for (int i = 0; i < 120; i++) {
System.out.println("F" + (i + 1) + " : " + a);
int ret = a + b;
if (ret >= 10) {
ret %= 10;
}
a = b;
b = ret;
}
}
}
Python:
a = 1
b = 1
for i in range(120):
print(f"F{i + 1} = {a}")
ret = a + b
if ret >= 10:
ret %= 10
a, b = b, ret