HDU 1568 快速求斐波那契前四位
思路:
把斐波那契通项公式转化成log的形式,高中数学...
//By SiriusRen #include <bits/stdc++.h> using namespace std; int f[21],n; int main(){ f[1]=f[2]=1; for(int i=3;i<=20;i++)f[i]=f[i-1]+f[i-2]; while(~scanf("%d",&n)){ if(n<=20)printf("%d\n",f[n]); else{ double s=log10(1/sqrt(5))+n*log10((1+sqrt(5))/2),t; s-=(int)s,t=pow(10,s); while(t<1000)t*=10; printf("%d\n",(int)t); } } }