斐波那契数列的递归、迭代、公式法
来源:互联网 发布:codecache javascript 编辑:程序博客网 时间:2024/05/22 04:15
写完了递推法之后,尝试了下迭代和公式,中间遇到了一个问题,当我输入的数据越过10了之后,迭代和公式法出现了负数。仔细看了下代码发现定义数组的时候习惯性的用了char,而字符串数组的范围是127~-128,所以才会出现负数这个东西。C语言没好好学啊,难受。
#include<math.h>#include<stdio.h>//递归法求斐波那契数列int fun(int n){ if(n>1){ return fun(n-1)+fun(n-2); }else{ return n; }}//迭代法求斐波那契数列int fun2(int n){ int i,a[100]; a[0]=0; a[1]=1; for(i=2;i<=n;i++){ a[i]=a[i-1]+a[i-2]; } return a[n];}//公式法求斐波那契数列int fun3(int n){ int i,a[100]; double gh5=sqrt((double)5); a[0]=0;a[1]=1;a[2]=1; for(i=2;i<=n;i++){ a[i]=(pow((1+gh5),n)/(pow(2,n)*gh5))+0.5; } return a[n];}int main(){ int a,i; printf("请输入要求多少项斐波那契数列:"); scanf("%d",&a); printf("递归法%:"); for(i=0;i<=a;i++){ printf("%d ",fun(i)); } printf("\n"); printf("迭代法%:"); for(i=0;i<=a;i++){ printf("%d ",fun2(i)); } printf("\n"); printf("公式法%:"); for(i=0;i<=a;i++){ printf("%d ",fun3(i)); } return 0;}
阅读全文
0 0
- 斐波那契数列的递归、迭代、公式法
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归、迭代(循环)、通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 斐波那契数列的递归,迭代(循环),通项公式三种实现
- 用递归,迭代,通项公式三种方法实现斐波那契数列求解
- 斐波那契数列【迭代+递归】
- 斐波那契数列迭代和递归实现
- 斐波那契数列(迭代和递归)
- 斐波那契数列的递归和迭代实现之差异
- 通过斐波那契数列来比较递归和迭代的区别
- 关于递归和迭代的 一次小实验(基于斐波那契数列)
- C语言实现斐波那契数列的两种方法(递归和迭代)
- 剑指offer----斐波那契数列的实现--递归和迭代
- 递归方式、迭代方式实现的斐波那契数列。
- 斐波那契数列的两种解题思路:递归VS迭代
- 「产品规划」的那些事儿
- 电子元器件基础知识之晶闸管(一)
- AsyncTask异步加载
- ArcEngine根据选择的要素判断其所属图层
- Tomcat环境变量配置
- 斐波那契数列的递归、迭代、公式法
- Qt生成Makefile
- PMCAFF原创文章人气周榜第三期(原创干货由你评鉴,在评论里写下你的看法吧~)
- 别让扁平化设计平淡无奇
- 和前端撕出逼格,撕的硬气
- 如何快速高效读懂1本书
- 由盛而衰的O2O,在明年还能笑傲江湖吗?
- 数据库连接池性能测试
- Java中List去重