
解析
模拟的时候用关于n的一元二次方程实根公式解的不亦乐乎。。。后来经高人提醒才发现万物皆为斐波拉契。。
 就很《离谱》
 于是代码就不难了
 也算有收获吧,遇到这种看起来莫名其妙的题时,不着急死磕,可以先写个上图一样的程序找找规律
 “实践是检验真理的唯一标准” ——鲁迅
代码
#include
 #include
 #include
 #include
 #include
 using namespace std;
 const int M=INT_MAX;
 long long f[1000005];
 int main(){
 int k;
 scanf("%d",&k);
int i;
f[1]=1;
f[2]=1;
for(i=2;;i++){f[i] = f[i-1] + f[i-2];if(f[i]>k) break;
}
printf("m=%d\nn=%d",f[i-2],f[i-1]);
return 0;
}