数论--斐波那契额

通项公式:

 1 #include<iostream>
 2 #include<cmath>
 3 using namespace std;
 4 int main()
 5 {
 6     double a,n,ans;
 7     cin>>n;
 8     //n--;  //(第一项是0时)
 9     a=sqrt(5);
10     ans =(a/5) * (pow( (1+a)/2 ,n) - pow((1-a)/2 ,n));
11     cout<<ans;
12     return 0;
13 }
时间: 2024-11-02 16:17:42

数论--斐波那契额的相关文章

斐波那契额序列

斐波那契额函数 import java.util.ArrayList; public class Fib { /*  * 斐波那契序列  * 递归  */ public static int fib(int n){ if(n<=0){ return 0; }else if(n==1){ return 1; }else{ return fib(n-1)+fib(n-2); } } /*  * 非递归  */ public static long ffib(int n,ArrayList<Long

python_实现_斐波那契额函数

在学递归的时候,用递归实现了一个 下面是代码 1 def fib(n): 2 if n >= 3: 3 return fib(n-1)+fib(n-2) 4 else: 5 return 1 6 print(fib(6)) 发现一个很严重的问题:当数字比较小的时候还好,但是当求30以后的数字的时候,就会运行特别长的时间 所以请看下面一种方法 1 while True: 2 def fib(n): 3 result = [1,1] 4 for i in range(n-2): 5 result.a

dijkstra模板(好像是斐波那契额堆优化,但我为什么看起来像优先队列优化,和spfa一样)

/* Dijkstra的算法思想: 在所有没有访问过的结点中选出dis(s,x)值最小的x 对从x出发的所有边(x,y),更新 dis(s,y)=min(dis(s,y),dis(s,x)+dis(x,y)) */ #include <iostream> #include <cstdio> #include <cstring> #include <queue> #include <vector> using namespace std; cons

python的递归算法学习(2):具体实现:斐波那契和其中的陷阱

1.斐波那契 什么是斐波那契,斐波那契额就是一个序列的整数的排序,其定义如下: Fn = Fn-1 + Fn-2 with F0 = 0 and F1 = 1 也就是,0,1,1,2,3,5,8,13..... 递归实现: def fib(n): if n == 0: return 0 elif n == 1: return 1 else: return fib(n-1) + fib(n-2) 非递归实现: def fibi(n): a, b = 0, 1 for i in range(n):

上楼梯问题,斐波那契数列

问题描述: 有一楼梯共m级,刚开始时你在第一级,若每次只能跨上一级或者二级,要走上m级,共有多少走法?注:规定从一级到一级有0种走法.给定一个正整数int n,请返回一个数,代表上楼的方式数.保证n小于等于100.为了防止溢出,请返回结果Mod 1000000007的值. 算法思路:这道题其实就是斐波那契数列的应用,因为可以走一步,又可以走两步,开始在第一层台阶.所以,上第二层台阶,有1种方法,上第三层台阶,有2种方法,上后一层,可以通过前一层再走1步,前两层再走2步.所以,就是f(x)= f(

递归和尾递归的比较,斐波那契

相信如果一个人让我们求一个斐波那契数列,如果你学过c语言,你一定会说用递归法啊,很容易就实现了,但是如果人家让你求斐波那契的第50个数,而且你对递归了解的话,估计帮你不会说递归了,如果了解够深的话,其实你会说递归也可以求出来. 1.递归 首先我们来说说什么是递归,简单的来说,就是一个函数需要调用自己来完成某种功能,这种调用就叫做递归. 但我们需要清楚一点,递归在使用的时候,并不是一直调用自己,我们需要给他一个停下来的时机.就像打仗一样,要知道进攻的路线,但如果遇到突发状况也要能及时撤退.所以我们

CF735C 数论\平衡树叶子节点的最大深度\贪心\斐波那契\条件归一化

http://codeforces.com/problemset/problem/735/C 题意..采用淘汰赛制..只要打输就退出比赛..而且只有两个选手打过的场数 相差不超过1才能比赛..最后问你..最多打几场比赛能决出冠军 那么这个题的做法是..画图..观察..分析 Tip:首先我们观察未知量的形式..它是一个复合函数的形式..max(决出冠军的所有可能的比赛方式的场数) 那么我们首先要求括号最里面的东西..即符合条件的所有可能的比赛方式的场数 那么我们可以画一画 我一开始为了保证比赛能正

用for循环和递归调用写出1~N的斐波那契数列的和 和第N位的数

首先注意: 代码是从上往下,从左往右执行的!! 这是for循环写的 m=任意数.代表1~多少位的和 public class Fei_Bo_Na_Qi{    public static void main(String[] args){        int m = 30;  //这里代表1~30位的和        System.out.println( "斐波那契数列的第 "+m+" 位数为: "+m1(m) );//  在输出的时候调用函数    }   

HDU 4549 M斐波那契数列(矩阵快速幂&amp;费马小定理)

ps:今天和战友聊到矩阵快速幂,想到前几天学长推荐去刷矩阵专题,挑了其中唯一一道中文题,没想到越过山却被河挡住去路... 题目链接:[kuangbin带你飞]专题十九 矩阵 R - M斐波那契数列 Time Limit:1000MS Memory Limit:32768KB 64bit IO Format:%I64d & %I64u 题意 Description M斐波那契数列F[n]是一种整数数列,它的定义如下: F[0] = a F[1] = b F[n] = F[n-1] * F[n-2]