菲波那契数列 | ||
题目描述1, 1, 2, 3, 5, 8, 13, 21...... 为菲波拉契数列(Fibonacci Sequence),该数列从第 3 项开始,每项都可表示成前2 项的和, 即:F(i)=F(i-1)+F(i-2),i>=3。 编程计算第 n 项的值。 输入格式输入有多个case, 每个case是1行,只有一个整数n (1 <= n <= 93). 输入以EOF结束 输出格式对于每个case输出1行 每行只包含一个整数 样例输入3 样例输出2 |
1 // Problem#: 6273 2 // Submission#: 1601185 3 // The source code is licensed under Creative Commons Attribution-NonCommercial-ShareAlike 3.0 Unported License 4 // URI: http://creativecommons.org/licenses/by-nc-sa/3.0/ 5 // All Copyright reserved by Informatic Lab of Sun Yat-sen University 6 //求斐波那列数列 7 #include <stdio.h> 8 9 int main() 10 { 11 unsigned long long i , n , j , k , m;//定义为超长无符号整型变量 12 13 while (scanf("%llu",&n)!= EOF )//输入数列的项数,条件为连续循环直到输入Ctrl+D时才结束 14 { 15 m=j=k=1;//初始化中间变量以及数列的数值 16 for( i = 3;i <= n ; i++)//从第三项开始遵从斐波那列规律,按逻辑赋值 17 { 18 m=j+k; 19 j=k; 20 k=m; 21 } 22 printf ("%llu\n",m);//输出第n项的数列的数值 23 24 } 25 26 return 0; 27 }
得好好看看清楚,自己没做出来,老师上课列出来的答案