php处理斐波那契数列非递归方法
我自己构思了下,实际上程序来解决这个事情,就是一个偏移量的问题。首先看数列::1、1、2、3、5、8、13、21、34数列的下一个数是前2个数字之和,以此类推。
程序处理的话,实际上就是一个FOR语句,传统FOR语句是for($i=1;$i;$count,$i++),这里的偏移量是$i=$i+1.如果处理这个数列的话,这个偏移量就不是1了,是前1个数字。那么当你for的时候,一个变量记录上一个数字,另外一个记录当前数字,偏移量为这上一个数字,然后在循环中重新赋值,将上一个数字记录成当然循环值,以此做下个循环的偏移量。代码其实很简单:
代码如下:
$count = 9999999999967543;
$array = array('0′=>1);
for($a=1,$i=2;$i<$count;$i=$i+$a){
$array[] = $a;
$array[] = $i;
$a = $a +$i;
}
print_r($array);
echo $count.'里有'.count($array).'个斐波那契数列数';
建议哪个无聊人拿这个去phpchina给大白菜职业顶贴去
相关推荐
-
解析分别用递归与循环的方式求斐波那契数列的实现方法
代码如下: 复制代码 代码如下: public class Fibonacci { public static long recursive(int n) { if (n <= 0) return 0; if (n == 1) return 1; return recursive(n - 1) + recursive(n - 2); } public static long loop(int n) { if (n <= 0) return 0; if (n == 1)
-
基于使用递归推算指定位数的斐波那契数列值的解决方法
昨天面试遇到这样的一道题目:1,1,2,3,5,8,13,21...,请问第30位的值是多少? 代码实现如下: 复制代码 代码如下: //1,1,2,3,5,8,13,21.......第30个是多少? //使用递归计算指定位数的斐波那契数列值 //Fn=F(n-1)+F(n-2) public static int GetFibonacciNumber(int index) { if(index<0||index==0)throw new Exc
-
c#斐波那契数列(Fibonacci)(递归,非递归)实现代码
//Main 复制代码 代码如下: using System;using System.Collections.Generic;using System.Linq;using System.Text; namespace Fibonacci{ class Program { static void Main(string[] args) { Console.WriteLine("Would you like to know which
-
C语言实现斐波那契数列(非递归)的实例讲解
废话不多说,直接上代码 #include <stdio.h> #include <stdlib.h> void f(int n); int main(void) { f(10); return 0; } void f(int n) { if(n==1) { printf("1\n"); return; } if(n==2) { printf("1 1\n"); return; } printf("1 1 "); int*
-
递归形式与非递归形式的斐波那契数列的用法分析
复制代码 代码如下: <SPAN style="FONT-SIZE: 32px">采用递归形式和非递归形式实现斐波那契数列</SPAN> 复制代码 代码如下: #include "stdafx.h"#include <iostream>using namespace std;//递归形式的斐波那契数列int fibonacciRecursion(int n){ if (n == 1 || n ==2) { return 1; }
-
C语言数据结构递归之斐波那契数列
C语言数据结构递归之斐波那契数列 因为自己对递归还是不太熟练,于是做POJ1753的时候就很吃力,就是翻棋子直到棋盘上所有棋子的颜色一样为止,求最少翻多少次,方法是枚举递归.然后就打算先做另一道递归的题(从数组中取出n个元素的组合),但是同样在递归的问题上不太理解.好吧,于是复习CPP,在第229页的时候,看到了斐波那契数列,回想起之前做过的一道题目,发现可以用递归的方法来做.于是决定优化一下之前的代码. 以下这段摘自<C primer plus> 斐波那契数列的定义如下:第一个和第二个数字都
-
java数学归纳法非递归求斐波那契数列的方法
本文实例讲述了java数学归纳法非递归求斐波那契数列的方法.分享给大家供大家参考.具体如下: Integer能表示的最大值为 2147483647 大概是21.4亿,这里没有考虑溢出情况(当size为983时就会溢出)! import java.util.List; import java.util.ArrayList; /** * @author jxqlovejava * 斐波那契数列 */ public class Fibonacci { public static List<Intege
-
php处理斐波那契数列非递归方法
我自己构思了下,实际上程序来解决这个事情,就是一个偏移量的问题.首先看数列::1.1.2.3.5.8.13.21.34数列的下一个数是前2个数字之和,以此类推. 程序处理的话,实际上就是一个FOR语句,传统FOR语句是for($i=1;$i;$count,$i++),这里的偏移量是$i=$i+1.如果处理这个数列的话,这个偏移量就不是1了,是前1个数字.那么当你for的时候,一个变量记录上一个数字,另外一个记录当前数字,偏移量为这上一个数字,然后在循环中重新赋值,将上一个数字记录成当然循环值,以
-
JAVA递归与非递归实现斐波那契数列
斐波那契数列(Fibonacci sequence),又称黄金分割数列.因数学家列昂纳多·斐波那契(Leonardoda Fibonacci[1] )以兔子繁殖为例子而引入,故又称为"兔子数列",指的是这样一个数列:0.1.1.2.3.5.8.13.21.34.--在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*)在现代物理.准晶体结构.化学等领域,斐波纳契数列都有直接的应用,为此,美国数学会从1963起
-
php实现斐波那契数列代码分享
斐波那契数列指的是这样一个数列 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,377,610,987,1597,2584,4181,6765,10946,17711,28657,46368........ 这个数列从第3项开始,每一项都等于前两项之和. F0=0,F1=1,Fn=F(n-1)+F(n-2) 递归版和非递归版. <?php function fib($n){ $array = array(); $array[0] = 1; $arra
-
java编程经典案例之基于斐波那契数列解决兔子问题实例
本文实例讲述了java基于斐波那契数列解决兔子问题.分享给大家供大家参考,具体如下: 题目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少? package com.java.recursion; /** * @描述 三种方法实现斐波那契数列 * @项目名称 Java_DataStruct * @包名 com.java.recursion * @类名 Fibonacci * @author chenli
-
Python打印斐波拉契数列实例
本文实例讲述了Python打印斐波拉契数列的方法.分享给大家供大家参考.具体实现方法如下: #打印斐波拉契数列 #!/usr/bin/python def feibolaqi(n): if n == 0 or n == 1: return n else: return feibolaqi(n-1) + feibolaqi(n-2) num = int(raw_input('please input a int:')) if num >= 0: print 'feibolaqi(%d) is %d
-
php实现斐波那契数列的简单写法
斐波那契数列是非常常见的一类数列,其数学定义为:F0=1,F1=1,Fn=F(n-1)+F(n-2)(n>=2,n∈N*).本文就用php来简单实现斐波那契数列,代码十分简洁易懂,如下所示: <?php $arr[1] = 1; for($i = 2;$i < 100;$i++) { $arr[$i] = $arr[$i-1] + $arr[$i-2]; } echo join(",",$arr);//将数组合并为一个字符串输出 ?> 至此就实现了Fn=F(n-
-
python实现斐波那契数列的方法示例
介绍 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学上,斐波纳契数列以如下递归的方法定义: F(0)=0,F(1)=1,F(n)=F(n-1)+F(n-2)(n≥2,n∈N*) . 1. 元组实现 fibs = [0, 1] for i in range(8): fibs.append(fibs[-2] + fibs[-1]) 这能得到一个在指定范围内的斐波那契数列的列表. 2. 迭代器实现 class Fibs: def __init__
随机推荐
- Powershell获取图片名字、文件夹及拍摄时间的例子
- Dom在ajax技术中的作用说明
- java 获取项目文件路径实现方法
- MVC分页之MvcPager使用详解
- js 多浏览器分别判断代码
- php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
- python del()函数用法
- python 判断一个进程是否存在
- 简略分析Android的Retrofit应用开发框架源码
- Ajax Control Toolkit 34个服务器端控件第1/2页
- JAVA 根据Url把多文件打包成ZIP下载实例
- Ubuntu Server 14.04升级Ubuntu Server 16.04
- sqlserver中根据字符分割字符串的最好的写法分享
- javascript 密码强弱度检测万能插件
- 详解JavaScript中双等号引起的隐性类型转换
- 关于访问IIS元数据库失败的解决方法
- Java基础篇_有关接口和抽象类的几道练习题(分享)
- 7种形式的Android Dialog使用实例
- 让CodeIgniter的ellipsize()支持中文截断的方法
- Android清除工程中无用资源文件的两种方法