public class FibonacciNotDigui {
/**
* 非递归的方法解决斐波那契数列问题
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
long result = fibonacci(40);
System.out.println(result);
}
private static long fibonacci(int i) {
// TODO Auto-generated method stub
if(i==1||i==2)
return 1L;
else{
long l1 = 1L;
long l2 = 1L;
long l3 = 0L;
for(int j=0;j<i-2;j++){
l3 = l1+l2;
l1 = l2;
l2 = l3;
}
return l3;
}
}
}
每次相加都是前一个加上前面第二个,如果是第N个数,那么循环n-2次,每次循环,都应该更新一下l1,l2,就是依次往后挪一个数。
根据这个函数,第四十个数是:102334155
第48个数是:4807526976
分享到:
相关推荐
【问题描述】编写函数f,功能是用递归的方法求斐波那契数列的第n项,函数原型为 int f(int n),在主函数中输入一个正整数n,调用函数f求出斐波那契数列的第n项,并在主函数中输出。 斐波那契数列:1,1,2,3,5,8,13,...
递归、动态规划和迭代是三种常见的解决斐波那契数列问题的方法。每种方法都有其优缺点:递归直观但效率低;动态规划减少了重复计算,提高了效率;迭代方式则避免了堆栈空间的问题,适用于大规模的n值。在实际编程中...
fibonacci数列的各种解法,递归、存储优化的递归、自下而上的递归(迭代法)、尾递归。其中分析内容请移步我的博客、
以下是C语言实现迭代斐波那契数列的一个基本框架: ```c #include // 函数声明 int fibonacci(int n); int main() { int n, fib; printf("请输入要计算的斐波那契数列项数:"); scanf("%d", &n); // 检查...
本文将探讨如何使用C++语言来实现Fibonacci数列的递归和非递归算法。 **递归算法** 递归是一种解决问题的方法,它定义一个函数或过程通过调用自身来解决问题。对于Fibonacci数列,递归实现非常直观: ```cpp int ...
我们可以使用两种主要方法在C++中实现斐波那契数列:迭代和递归。 **迭代法**: 迭代法是通过循环结构来计算斐波那契数列的一种高效方式。这种方法避免了递归带来的栈空间开销,适用于较大的数列项。下面是一个使用...
4. **基于矩阵乘法的公式**:根据《算法导论》2.5.2章节,可以利用矩阵快速幂的方法计算斐波那契数,其时间复杂度远低于递归和迭代,大约为O(logN)。 实验要求还包括: - 设计用户界面,最好为图形化,方便用户...
在C++编程中,理解并能够实现斐波那契数列是基本功,它可以帮助开发者掌握迭代、循环控制和高效算法设计等概念。此外,斐波那契数列还常用于测试计算机性能、理解和应用动态规划等问题。 了解和实践非递归的...
实现Fibonacci数列的常见方法有两种:递归和迭代。 ##### 2.1 递归方法 递归方法是直接按照Fibonacci数列的定义来实现的,即`fib(n) = fib(n-1) + fib(n-2)`。这种方法直观但效率较低,尤其是当计算较大的`n`时,会...
总结起来,Python提供了多种方法来实现斐波那契数列,包括递归、动态规划和迭代。虽然递归方法简洁易懂,但其效率较低,适合小规模问题;动态规划和迭代方法则在效率上更有优势,尤其对于大规模计算。在实际编程中,...
在编程领域,Fibonacci数列是一个非常经典的问题,它被广泛用于教学和理解递归概念。递归是一种解决问题的方法,它将问题分解为更小的子问题,直到子问题简单到可以直接解决。C++是一种强大的面向对象的编程语言,...
最直观的求解Fibonacci数列的方法就是使用递归。这种方法简单明了,但是效率较低,因为存在大量的重复计算。对于较大的数值,递归方法可能导致栈溢出等问题。 #### 迭代方法 迭代方法是一种更高效的解决方式,它...
包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。 包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。 包括递归版、迭代版、矩阵快速幂版的各种斐波那契数列的java解决方法。...
在本文中,我们将深入探讨如何使用汇编语言来计算斐波那契数列的前22项,并且对比两种不同的实现方法:递归调用和普通循环加法。首先,让我们了解一下斐波那契数列的基本概念。 斐波那契数列是一个数学上的序列,...
斐波那契数列,又称黄金分割数列,斐波那契数列指的是这样一个数列 0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, ... 这个数列从第三项开始,每一项都等于前两项之...我上传的是用php中,用递推和迭代求斐波那契数列
在王小东的《算法设计与分析》中,他可能讲解了如何用递归方式来实现斐波那契数列。 在C语言中,我们可以编写一个递归函数来计算斐波那契数列的第n项。以下是一个简单的递归实现: ```c #include int fibonacci...
通过对斐波那契数列递归与非递归算法的分析比较,我们可以得出以下结论: 1. **递归算法**:虽然简单直观,但由于其高时间复杂度和潜在的栈溢出风险,不适合处理大规模数据。 2. **非递归算法**:通过迭代的方式...
斐波那契数列(Fibonacci Sequence)是数学领域中的一个重要概念,它在计算机科学,尤其是算法设计中有着广泛的应用。斐波那契数列的定义是:第一项F0为0,第二项F1为1,之后的每一项Fi(i>1)都是前两项的和,即Fi ...
这种方法基于斐波那契数列的定义,通过递归调用自身来计算每一项。代码如下: ```python def fibonacci(n): if n return n else: return fibonacci(n-1) + fibonacci(n-2) ``` 虽然递归方法直观易懂,但...