/*===================================== 1978 Fibonacci数列 3 题目描述 Description 斐波纳契数列是这样的数列: f1 = 1 f2 = 1 f3 = 2 f4 = 3 .... fn = fn-1 + fn-2 输入一个整数n 求fn 输入描述 Input Description 一个整数n, n<= 40 输出描述 Output Description 一个整数fn 样例输入 Sample Input 3 样例输出 Sample Output 2 数据范围及提示 Data Size & Hint n<=40 下面的代码直接使用 Fibonacci数列的通项公式计算第n项。 an=1/sqrt(5)*( ( ( 1+sqrt(5) )/2)^n-( ( 1-sqrt(5) )/2)^n ) ======================================*/
懒得写递推了,直接用通项公式输出吧。
公式:
1 #include<stdio.h> 2 #include<math.h> 3 int main() 4 { 5 int n; 6 double t,ans; 7 scanf("%d",&n); 8 t=sqrt(5); 9 ans=1.0/t*(pow((1+t)/2,n)-pow((1-t)/2,n)); 10 printf("%.0lf\n",ans); 11 return 0; 12 }