程序没有问题,但是数字太大后多次递归造成运行栈溢出,其实你不用递归,用一个数组从f(3)开始依次向f(4), f(5) 递推不就没有问题了,也不会溢出,速度也快得多
修改f(int n)函数试试:int f(int n){ if(n==1||n==2){ if(n==1) return 1; } else return (a*f(n-1)+b*f(n-2))%7;}