求斐波那契数列的第n个数;1,1,2,3,5,8,13,21.....

来源:互联网 发布:仙知机器人 冯源 编辑:程序博客网 时间:2024/05/19 03:44

递归方法:

#include<stdio.h>#include<stdlib.h>int Fibonacci_sequence(int n){if (n == 1 || n == 2) // 递归结束的条件,求前两项return 1;else{return Fibonacci_sequence(n - 1) + Fibonacci_sequence(n - 2); // 如果是求其它项,先要求出它前面两项,然后做和。}}int main(){int i = 0;int n = 8;printf("Please enter a number:");scanf("%d", &n);i=Fibonacci_sequence(n);printf("The number is %d\n", i);system("pause");return 0;}

#include<stdio.h>#include<stdlib.h> void Fei(int n) // 非递归 {int sum = 1;int sum1 = 1;int i = 0;int tem = 0;if (n < 1){printf("输入数字有误\n");}else if (1 == n){printf("第n个斐波那契数是:%d\n", sum);}else if(2 == n){printf("第n个斐波那契数是:%d\n", sum);}else{for (i = 0; i < n - 2; i++) //  第三项等于前两相加{tem = sum;   //  tem 保存原来的sumsum += sum1; //  sum= 前两项相加sum1 = tem;  //  sum1 =原来的sum    始终保证第三项等于前两项相加}printf("第n个斐波那契数是:%d\n", sum);}}int main(){int n = 0;printf("Please enter a number :");scanf("%d",&n);Fei(n);system("pause");return 0;}


0 0