A.Fibonacci

Posted ssniper

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了A.Fibonacci相关的知识,希望对你有一定的参考价值。

技术图片技术图片

本题要先利用斐波那契数列公式,然后很巧妙地利用对数求出前四位

解释转自CSDN博主queuelovestack

关于本题利用欧拉公式的部分

技术图片

 

关于求利用对数求前四位的部分

技术图片

 

 

 

#include<bits/stdc++.h>

using namespace std;

int fib[20];

int main()
  ios::sync_with_stdio(false);
  // freopen("in.in", "r", stdin);
  fib[0] = 0;
  fib[1] = 1;
  for(int i=2; i<20; i++)
    fib[i] = fib[i-1] + fib[i-2];
  int n=0;
  while(cin >> n)
    if(n<20)
      cout << fib[n] << endl;
    else
      double num = -0.5*log10(5.0) + n*log10((1.0+sqrt(5.0))/2.0);
      num -= (int)num;
      num = pow(10, num);
      while(num < 1000)
        num *= 10;
      cout << (int)num << endl;
    
  
  return 0;

 

以上是关于A.Fibonacci的主要内容,如果未能解决你的问题,请参考以下文章