Go语言实现Fibonacci数列的方法
本文实例讲述了Go语言实现Fibonacci数列的方法。分享给大家供大家参考。具体如下:
Fibonacci数列:1,1,2,3,5,8,13,21,,, (即从第三项起,每一项的值都等于前两项之后)
第一种,使用递归:
func fibonacci(a int) int {
if a == 1 || a == 2 {
return 1
}
return fibonacci(a-1) + fibonacci(a-2)
}
第二种,不使用递归:
func fibonacci_version2(index int) int {
if index == 1 || index == 2 {
return 1
}
a, b := 1, 1
for i := 3; i <= index; i++ {
a, b = b, (a + b)
}
return a + b
}
经过检验,使用非递归算法的效率要远远高于递归算法。
希望本文所述对大家的Go语言程序设计有所帮助。
相关推荐
-
java实现fibonacci数列学习示例分享(斐波那契数列)
输出:1 1 2 3 5 复制代码 代码如下: public class FibonaciTest { public static void main(String[] args) { Fibonaci(5); } public static void Fibonaci (int count) { int[] num = new int[count]; num[0] = num[1] = 1; for (int i = 2; i < count; i++) { num[i] =
-
java实现Fibonacci算法实例
本文实例讲述了java实现Fibonacci算法的方法.分享给大家供大家参考.具体如下: package com.yenange.test2; import java.util.Scanner; public class Fibonacci { private static Scanner input = new Scanner(System.in); public static void main(String[] args) { System.out.println("-----------
-
用Python实现斐波那契(Fibonacci)函数
Fibonacci斐波那契数列,很简单,就是一个递归嘛,学任何编程语言可能都会做一下这个. 最近在玩Python,在粗略的看了一下Learning Python和Core Python之后,偶然发现网上有个帖子Python程序员的进化写的很有意思.于是打算仿照一篇,那篇帖子用了十余种方法完成一个阶乘函数,我在这里会用九种不同的风格写出一个Fibonacci函数. 要求很简单,输入n,输出第n个Fibonacci数,n为正整数 下面是这九种不同的风格: 1)第一次写程序的Python程序员: de
-
BAT批处理实现Fibonacci函数
小无聊一下,不过真的很强大-- @ECHO OFF SETLOCAL SET X=10 CALL :Fib %X% Y ECHO Fib^(%X%^)=%Y% GOTO :EOF :Fib [In]X [Out]Result SETLOCAL SET A=%1 SET D=1 SET E=0 IF %A% LEQ 1 ( GOTO FibRet ) SET /A B=%A%-1 SET /A C=%A%-2 CALL :Fib %B% D CALL :Fib %C% E :FibRet ENDL
-
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语言的cps实现求fibonacci数列示例
CPS:http://en.wikipedia.org/wiki/Continuation-passing_style示例代码使用迭代 + 尾递归. 复制代码 代码如下: #include <stdio.h> typedef void (*END_OF_END)(unsigned long);void fibonacci(int, unsigned long, unsigned long, void(*)(unsigned long)); voidnotify(unsigned long re
-
求斐波那契(Fibonacci)数列通项的七种实现方法
一:递归实现使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1.二:数组实现空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快.三:vector<int>实现时间复杂度是0(n),时间复杂度是0(1),就是不知道vector的效率高不高,当然vector有自己的属性会占用资源.四:queue<int>实现当然队列比数组更适合实现斐波那契数列,时间复杂度和空间复杂度和vector<int>一样,但队列太适合这里了,
-
Java基于高精度整型实现fibonacci数列的方法
本文以实例形式讲述了Java基于高精度整型实现fibonacci数列的方法,分享给大家供大家参考之用.具体方法如下: package com.java.learning.recursion; import java.math.*; public class MainClass { public static void main(String args[]){ for(int i = 0; i < 100; i++){ f(i+1); } } public static BigInteger f(
-
Go语言实现Fibonacci数列的方法
本文实例讲述了Go语言实现Fibonacci数列的方法.分享给大家供大家参考.具体如下: Fibonacci数列:1,1,2,3,5,8,13,21,,, (即从第三项起,每一项的值都等于前两项之后) 第一种,使用递归: 复制代码 代码如下: func fibonacci(a int) int { if a == 1 || a == 2 { return 1 } return fibonacci(a-1) + fibonacci(a-2) } 第
-
C语言实现Fibonacci数列递归
/* 问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1. 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少. */ #include<stdio.h> #include<stdlib.h> int N=10007; /*计算Fibonacci函数*/ int Fibonacci (int n) { int Fn; if (n==1 || n==2) { Fn=1; } else { Fn = (Fibonacci(
-
C语言求Fibonacci斐波那契数列通项问题的解法总结
一:递归实现 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[2]=1. 二:数组实现 空间复杂度和时间复杂度都是0(n),效率一般,比递归来得快. 三:vector<int>实现 时间复杂度是0(n),时间复杂度是0(1),就是不知道vector的效率高不高,当然vector有自己的属性会占用资源. 四:queue<int>实现 当然队列比数组更适合实现斐波那契数列,时间复杂度和空间复杂度和vector<int&g
-
C++中实现fibonacci数列的几种方法
目录 前言 一.fibonacci数列是什么? 二.递归实现 1.递归的特点 2.C++实现 三.循环实现 1.C++实现 2.时间复杂度 四.矩阵实现 1.理论推导 2.C++实现 3.时间复杂度 前言 fibonacci数列的实现主要有三种方法:递归.循环与矩阵.这里主要学习了如何在C++中实现这三种方法以及分析它们各自的时间复杂度. 本文参考文章如下:https://www.jb51.net/article/235674.htm 一.fibonacci数列是什么? 斐波那契数列(Fibon
-
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
-
Python基于递归算法实现的汉诺塔与Fibonacci数列示例
本文实例讲述了Python基于递归算法实现的汉诺塔与Fibonacci数列.分享给大家供大家参考,具体如下: 这里我们通过2个例子,学习python中递归的使用. 1. 找出Fibonacci数列中,下标为 n 的数(下标从0计数) Fibonacci数列的形式是这样的:0,1,1,2,3,5,8,13-- ① 使用while循环,python2代码如下: def fib(n): a,b=0,1 count=0 while count<n: a,b=b,a+b count=count+1 pri
-
go语言base64加密解密的方法
本文实例讲述了go语言base64加密解密的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "encoding/base64" "fmt" ) const ( base64Table = "123QRSTUabcdVWXYZHijKLAWDCABDstEFGuvwxyzGHIJklmnopqr234560178912" ) var coder = base6
-
go语言实现AES加密的方法
本文实例讲述了go语言实现AES加密的方法.分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package main import ( "fmt" "crypto/aes" "strings" ) func main(){ rb:=[]byte {1,2,3,4,5,6,7,8,9,0,1,2,3,4,5,6}; b:=make([]byte,16); strings.NewReader("123456789012345
随机推荐
- PHP小白必须要知道的php基础知识(超实用)
- 让网页上的超链接失效,不能点击的js代码
- 详解Vue的computed(计算属性)使用实例之TodoList
- 多种方式实现JS调用后台方法进行数据交互
- C++ 中类对象类型的转化的实例详解
- Android RecyclerView 数据绑定实例代码
- 使用PHP和JavaScript判断请求是否来自微信内浏览器
- 用XSL翻译Web服务应用程序
- C语言中的pause()函数和alarm()函数以及sleep()函数
- SQL Server数据库的修复SQL语句
- JavaScript加入收藏夹功能(兼容IE、firefox、chrome)
- 老兵新传-各种漏洞的利用和一些搜索参数
- 一道Java集合框架题 多种解题思路
- C#遍历得到checkboxlist选中值和设置选中项的代码
- 显示任何进程加载的DLL文件的代码
- 比较详细的DIV+CSS布局网页对网站SEO的影响
- 详解使用spring boot admin监控spring cloud应用程序
- Linux CentOS 7.0中java安装与配置环境变量的步骤详解
- Android UI开发中所遇到的各种坑
- MySQL InnoDB row_id边界溢出验证的方法步骤