递归就是函数直接或者是间接的调用自己,相当于循环,使用时必需要有一个跳出条件,否则会进入死循环。它是栈的存取方式,先进后出,后进先出。 主要用于循环,如阶乘函数、幂函数和斐波那契数列。 <script> function fn(n) { if (n == 1) { return n; } retur ...
分类:
其他好文 时间:
2020-01-29 12:10:13
阅读次数:
72
矩阵快速幂 一.简介 首先,矩阵快速幂是从快速幂里延伸出的算法,需要快速幂以及线性代数的知识。快速幂是利用二进制的有关性质快速计算出xn,矩阵快速幂则是通过将递推式化成一个矩阵,求解某个递推结果的过程变成求解一个矩阵的n次幂的过程,从而能用快速幂加快递推式的求解。 举个例子,我们来用斐波那契数列来解 ...
分类:
其他好文 时间:
2020-01-29 01:13:49
阅读次数:
94
高精度 1 高精度加法 LGP1601 啥也不说,直接上代码 2 数楼梯 LGP1255 题解 斐波那契数列+高精度,基本上没什么改动 3 $B$进制星球 LGP1604 题解 其实就是一个万能的高精度,$B$进制就是逢$B$进1,以前的$\mod 10$、÷10都变成$\mod B$,剩下的和高精 ...
分类:
其他好文 时间:
2020-01-28 21:32:49
阅读次数:
50
斐波那契螺旋(也称为黄金螺旋)是根据斐波那契数列得到的一种螺旋。 斐波那契数列是这样一种数列:1,1,2,3,5,8……,从第三项开始,每一项的数字是前两项数字之和。以这些数字为半径,连续绘制圆弧就可以得到如下面的斐波那契螺旋: 按照等距螺旋对螺旋的运动方式的解释,螺旋应由圆周运动与直线运动相叠加而 ...
分类:
其他好文 时间:
2020-01-27 00:17:35
阅读次数:
155
快速上手leetcode动态规划题 我现在是初学的状态,在此来记录我的刷题过程,便于以后复习巩固。 我leetcode从动态规划开始刷,语言用的java。 一.了解动态规划 我上网查了一下动态规划,了解到动态规划是“带有备忘录的递归”, 而大多数用来理解动态规划的例子都是斐波那契数列,就是那个经典的 ...
分类:
其他好文 时间:
2020-01-25 16:47:57
阅读次数:
94
6.1什么是递归 递归: 如果一个函数在内部可以调用其本身,那么这个函数就是递归函数。 简单理解: 函数内部自己调用自己, 这个函数就是递归函数 注意: 递归函数的作用和循环效果一样,由于递归很容易发生“栈溢出”错误(stack overflow),所以必须要加退出条件return。 6.2 利用递 ...
分类:
其他好文 时间:
2020-01-24 12:04:55
阅读次数:
91
509 斐波那契数 斐波那契数 ,通常用 表示,形成的序列称为 斐波那契数列 。该数列由 和 开始,后面的每一项数字都是前面两项数字的和。也就是: 给定 ,计算 。 示例 1: 示例 2: 示例 3: 提示: 0 ≤ ≤ 30 来源:力扣(LeetCode) 链接:https://leetcode ...
分类:
其他好文 时间:
2020-01-23 18:12:23
阅读次数:
118
题目 大家都知道斐波那契数列,现在要求输入一个整数n,请你输出斐波那契数列的第n项(从0开始,第0项为0)。n<=39 函数 使用公式f[n]=f[n-1]+f[n-2],依次递归计算,递归结束条件是f[1]=1,f[0]=0。 public class Solution { public int ...
分类:
其他好文 时间:
2020-01-23 12:31:21
阅读次数:
56
package main import ( "fmt" ) func fbn(n int) ([]uint64) { //声明一个切片,切片大小 n fbnSlice := make([]uint64, n) //第一个数和第二个数的斐波那契 为1 fbnSlice[0] = 1 fbnSlice[ ...
分类:
其他好文 时间:
2020-01-23 09:52:52
阅读次数:
72
使用Stream流输出斐波那契数列: Stream.iterate(new int[]{0, 1}, t -> new int[]{t[1],t[0] + t[1]}) .limit(10) .map(t -> t[0]) .forEach(System.out::println); ...
分类:
其他好文 时间:
2020-01-22 18:27:13
阅读次数:
80