使用循环解决斐波那契数列Fibonacci sequence

 1 # encoding:utf-8
 2 ‘‘‘
 3 Created on 2017年8月7日
 4 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,
 5 小兔子长到第三个月后每个月又生一对兔子,
 6 假如兔子都不死,问每个月的兔子总数为多少?
 7 知识链接:
 8     1、在使用函数传递变量时不要同全局变量的名称一样
 9     2、全局变量在函数中使用时,需要用 global声明
10 @author: wangtaoyuan
11 ‘‘‘
12 new = 1#刚出生的小兔子对数
13 one = 0#一个月大的兔子对数
14 old = 0#两个月及以上的兔子,成熟兔子对数
15 i = 0
16 m = input(‘please input a inter of months:‘)
17 print ‘                                   ‘,old + new + one#初始兔子的总数
18 def growup( newl, onel, oldl):
19     global new, old, one, two
20     old = oldl + onel#1个月大的兔子成长为成熟兔子
21     print ‘old:‘,old
22     one = newl #刚出生的兔子成长为一个月大的兔子
23     print ‘one:‘, one
24     new = 0
25 def breed(oldl):
26     global new
27     new = old #一对成熟兔子可以下一对刚出生的小兔子
28     print ‘new:‘, new
29 while i < m:
30     print i+1,‘个月后:‘
31     growup(new, one, old)#成长1个月
32     breed(old)#成熟的兔子生小兔子
33     i += 1
34
35     print ‘                                   ‘,old + new + one#兔子的总数
时间: 2024-12-22 20:23:40

使用循环解决斐波那契数列Fibonacci sequence的相关文章

python实现斐波那契数列(Fibonacci sequence)

使用Python实现斐波那契数列(Fibonacci sequence) 斐波那契数列形如 1,1,2,3,5,8,13,等等.也就是说,下一个值是序列中前两个值之和.写一个函数,给定N,返回第N个斐波那契数字.例如,1返回1 6返回8 我选择了两种方法,一种是将list变成一个队列,另一个则是使用环形队列.不多说,直接上代码:后面我会对为什么这样实现做一个解释 第一个是使用队列的方式: 1 def fibonacciSeq(num): 2 fibonacciSeqList = [] 3 for

使用递归解决斐波那契数列的性能问题

我们知道斐波那契数列(也称作兔子数列)  1,1,2,3,5,8,13,21,34..... 前两位数固定是1,之后每一位数都是前两位数的之和,这样的数列就是斐波那契数列 那么我们要求这样的数列,就必须要求n-1和n-2位数 function getFB(n){ if(n == 1 || n == 2){ // 这里我们先保持前两位数是1 return 1; }else { return getFB(n-1) + getFB(n-2); } } console.log(getFB(10)); 求

java循环输出斐波拉契数列

斐波拉契--引用于百度百科 斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci)以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递推的方法定义:F(1)=1,F(2)=1, F(n)=F(n-1)+F(n-2)(n>=2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为

使用递推和递归解决斐波那契数列问题~~~

/** * 使用递推的方式处理斐波那契数列 * @param sum * @param i * @return */ public static int findValue(int n){ if(n==1) { return 1; } if(n==2) { return 2; } int sum=1; int pre=1; for(int i=3;i<=n;i++) { int temp=sum; sum+=pre; pre=temp; } return sum; } /** * 采用递归的方式

练习六:斐波那契数列(fibonacci)

题目:斐波那契数列. 程序分析:斐波那契数列(Fibonacci sequence),又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.……. 在数学上,斐波那契数列是以递归的方法来定义: F0 = 0 (n=0)F1 = 1 (n=1)Fn = F[n-1]+ F[n-2](n=>2)--------------------- 方法一:使用递归计算 1 def fibonacci(month): 2 if month == 1: 3 return 1 4 el

poj3070_斐波那契数列(Fibonacci)

用矩阵求斐波那契数列,快速幂log(n),只用求最后4位(加和乘的运算中前面的位数无用) 1 #include <stdio.h> 2 #include <stdlib.h> 3 4 int main() 5 { 6 /* 7 (x y)(x y)= (x*x+y*s x*y+y*t) =(x*x+y*s y*(x+t)) 8 (s t)(s t) (s*x+t*s s*y+t*t) (s*(x+t) t*t+y*s) 9 (x y)(a b)= (x*a+y*c x*b+y*d)

Java实现斐波那契数列Fibonacci

import java.util.Scanner; public class Fibonacci { public static void main(String[] args) { // TODO Auto-generated method stub Scanner in=new Scanner(System.in); System.out.println("斐波那契数列的个数是:"); int total=in.nextInt(); System.out.println("

C# 4种方法计算斐波那契数列 Fibonacci

F1: 迭代法 最慢,复杂度最高 F2: 直接法 F3: 矩阵法 参考<算法之道(The Way of Algorithm)>第38页-魔鬼序列:斐波那契序列 F4: 通项公式法 由于公式中包含根号5,无法取得精确的结果,数字越大误差越大 1 using System; 2 using System.Diagnostics; 3 4 5 namespace Fibonacci 6 { 7 class Program 8 { 9 static void Main(string[] args) 1

斐波拉契数列(Fibonacci) 的python实现方式

第一种:利用for循环 利用for循环时,不涉及到函数,但是这种方法对我种小小白来说比较好理解,一涉及到函数就比较抽象了... 1 >>> fibs = [0,1] 2 >>> for i in range(8): 3 fibs.append(fibs[-2] + fibs[-1]) 4 5 >>> fibs 6 [0, 1, 1, 2, 3, 5, 8, 13, 21, 34] 或者说输入一个动态的长度: 1fibs = [0,1] 2num = i