2 3 5 即:前两项的和 对前3项的和取余的结果 再对5取余 f(1)+f(2) % f(1)+f(2)+f(3) % 5=0
答案1(优化前,使用递归):
import java.util.Scanner;
public class TestOne {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n =sc.nextInt();//前n项
int m =sc.nextInt();//前m项
int mod = sc.nextInt();
long sumN = 0;
for(int i=1;i<=n;i++) {
sumN+=f(i);
}
System.out.println(sumN%f(m)%mod);
}
//计算斐波那契数列
private static int f(int k) {
if(k==1 || k==2) {
return 1;
}
return f(k-1)+f(k-2);
}
}
方法2:优化后(借助矩阵)