解析
模拟的时候用关于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;
}