嵌套的递推式取mod是存在循环节的
#include <cstdio> #include <iostream> using namespace std; #define LL __int64 LL mod=1e9+7; int main() { LL i,a,b,g; a=1,b=0; for(i=1;;i++) { g=(3*a+b)%mod; b=a; a=g; if(a==1&&b==0) { if(i!=mod) {mod=i;} else break; cout<<i<<endl; i=1; } } return 0; }