Fibonacci数列(四)

时间限制:1000 ms  |  内存限制:65535 KB
难度:4
描述
数学神童小明终于把0到100000000的Fibonacci数列(f[0]=0,f[1]=1;f[i] = f[i-1]+f[i-2](i>=2))的值全部给背了下来。
接下来,CodeStar决定要考考他,于是每问他一个数字,他就要把答案说出来,不过有的数字太长了。所以规定超过4位的只要说出前4位(高4位)就可以了,可是CodeStar自己又记不住。于是他决定编写一个程序来测验小明说的是否正确。

输入
输入若干数字n(0 <= n <= 100000000),每个数字一行。读到文件尾结束。
输出
输出f[n]的前4个数字(若不足4个数字,就全部输出)。
样例输入
0
1
2
3
4
5
35
36
37
38
39
40
样例输出
0
1
1
2
3
5
9227
1493
2415
3908
6324
1023
来源
hdu
上传者
rihkddd

思路:见程序注释

#include<iostream>
#include<stdio.h>
#include<string.h>
#include<algorithm>
#include<math.h>
using namespace std;
int a[25];
void init()
{a[0]=0;a[1]=1;a[2]=1;for(int i=3;i<=21;i++)a[i]=a[i-1]+a[i-2];//特征方程 x^2=x+1//x1.2=(1+-sqrt(5));
}
int main()
{int n;init();while(~scanf("%d",&n)){if(n<=20)printf("%d\n",a[n]);else{double tp=n*log((1+sqrt(5.0))/2.0)/log(10.0)-0.5*log(5.0)/log(10.0);//f(n)=A*((1+sqrt(5))/2)+B*((1-sqrt(5))/2);tp-=floor(tp);//A=SQRT(5)/5 B=-sqrt(5);tp=pow(10.0,tp);while(tp<1000)tp*=10;printf("%d\n",(int)tp);}}
}

nyoj461 Fiboncci数列(4)解通项公式相关推荐

  1. fibonacci斐波那契数列详解 递归求Fn非递归求Fn求n最近的斐波那契数

    斐波那契fibonacci 斐波那契额数列即前两项F(0)和F(1)都是1,之后的每一项都是前两项相加和即F(3)=2,F(4)=3,F(5)=5; 通项公式:F(n+2)=F(n+1)+F(n). ...

  2. 力扣刷题之路 38. 外观数列 Python解

    给定一个正整数 n ,输出外观数列的第 n 项. 「外观数列」是一个整数序列,从数字 1 开始,序列中的每一项都是对前一项的描述. 你可以将其视作是由递归公式定义的数字字符串序列: countAndS ...

  3. 数据结构之栈与递归的实现及应用(斐波拉契数列递归解法和strlen递归解法)

    栈与递归 程序中的"函数调用栈"是栈数据结构的一种应用. 函数调用栈一般是从高地址向低地址增长的,栈底为内存的高地址处,栈顶为内存的低地址处. 函数调用栈中存储的数据为活动记录.活 ...

  4. python实现斐波那契数列详解(黄金分割)

    今天给各位分享一个常见的题目:求斐波那契数列前n项分别是什么(也称为黄金分割数列),整个数列需满足一个条件即第三项的值等于前两项相加的和,如第一项是1.第二项是1.第三项是2.第四项是 3.第五项是5 ...

  5. 使用递归方法计算斐波那契数列详解

    斐波那契数列:1.1.2.3.5.8.13.21....... 首先观察数列,得出规律:f(n)=f(n-1)+f(n-2),n为位数: 其次,定义一个feibonaqie类,构造出方法,由题目易知, ...

  6. 斐波那契数列 - 递推公式及通项公式 代码

  7. 不动点求数列通项原理_不动点法和数列通项公式

    写这篇文章的原因是一直耿耿于怀的这个题目: 因为是浙江题,当时官方给出的答案是利用不动点法判断,不动点法或者特征根法求通项公式并不是全国卷考生的复习内容,当时只是觉得这部分内容有点过于花里胡哨没有太大 ...

  8. matlab 帕多瓦数列 通项公式_斐波那契数列的通项公式及证明

    简介 斐波那契数列是指的这样的一个数列,从第3项开始,以后每一项都等于前两项之和.写成递推公式即: \[a_n=a_{n-1}+a_{n-2}(n \ge 3) \] 假设令\(a_1=1,a_2=1 ...

  9. canvas rotate 累加旋转_高考数列通项公式解题方法(1):观察法、公式法、累加法、累乘法...

    在高考数学中,数列是经常考察的一种题型.现在就让我们看看,针对求数列通项的题型,有哪些便捷的解答方法. 本文先分享数列通项公式的四种解法:观察法.公式法.累加法.累乘法. 一.观察法 这种方法通常是已 ...

  10. Fibonacci 数列

    斐波纳契数列(Fibonacci Sequence),又称黄金分割数列,指的是这样一个数列:1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下被以递归的方法定义:F0=0,F1=1, ...

最新文章

  1. 教育部:国外经历不得作为高校招聘限制性条件
  2. Java_质数_两种解法(时间对比)
  3. 网络路径无法访问问题的解决
  4. 小心了!这18位数字一泄漏,支付宝账户就可能会被他人盗刷!
  5. iOS高仿微信悬浮窗、忍者小猪游戏、音乐播放器、支付宝、今日头条布局滚动效果等源码...
  6. 事务管理最佳实践多余的话之二:Transaction后缀给声明式事务管理带来的好处
  7. Docker入门之安装MySQL
  8. C语言查找100~200以内的素数(质数)
  9. android 版本权限差别,安卓手机root前后有什么区别 root后哪些高权限操作
  10. 自建nod32更新服务器,ESET NOD32 官方升级服务器地址
  11. 2020-09-12
  12. 不懂汇报工作,如何在职场上拼搏
  13. 将站点数据插值到格点上
  14. FFT(快速傅里叶变换)摘要
  15. Python使用RMF聚类分析客户价值
  16. js制作点击会自动隐藏的导航栏(固定在在头部的)
  17. python之海龟绘图
  18. Oracle的SQL性能优化
  19. atlas mysql怎么用,MySQL —— Atlas 使用
  20. 嵌入式软件工程师相关的应聘要求

热门文章

  1. [控件]GridView网格视图
  2. 【经验心得】每刷新一次页面就顺序更换一张图片的js特效
  3. cisco产品命名规则
  4. Java-Android 之单选按钮的运用
  5. linux otl oracle数据库连接例子
  6. 【转】Java集合间的相互转换
  7. QT创建和使用动态链接库
  8. 如何使用String获取字符串中某一个字符后面的所有字符?
  9. -f linux_SAIL-F-8-2-4-0-12流量积算仪-老友网
  10. mysql命令 -a_mysql常用命令