递归算法大家都不陌生,当需要重复计算相同问题时,一般可以选择递归和循环两种算法。又因为递归实现起来代码比较简洁,所以通常都会使用递归来解决上述问题。比如斐波那契数列,再比如树的前序、中序、后续遍历算法。
递归算法虽然是有代码简洁这个优点,但是其缺点显著。因为递归函数是在执行过程中调用其自身,所以会占用大量的栈上空间,并且压栈和出栈都是有时间消耗的。所以从这一点上来看,递归的效率是不如循环。除...
分类:
其他好文 时间:
2014-07-24 12:24:15
阅读次数:
438
递归算法是不可取的,因为效率很低,而且还有栈溢出的风险。
应该使用如下的迭代解法:
int Fibonacci(unsigned int n)
{
if(n <= 0)
{
return 0;
}
if(n == 1)
{
return 1;
}
int i = 0,j = 1,m;
unsigned int k;
for(k = 2; k <= ...
分类:
其他好文 时间:
2014-07-24 12:24:05
阅读次数:
233
解: 1.14:空间是O(n)。步聚不好直接求,根据书中的描述,增长的阶是对某种规模所需资源的粗略度量,比如书中描述斐波那契的树形递归计算需要O(pow((1+sqrt(5))/2,n))步,可以把这个树形递归想像成是一个满二叉树...
分类:
其他好文 时间:
2014-07-24 10:57:06
阅读次数:
260
Fibonacci Again!
时间限制:1000 ms | 内存限制:65535 KB
难度:2
描述
求第n个斐波那契数是否是一个素数,n为整数
f[n]=f[n-1]+f[n-2] (2
f[1]=3,f[2]=7
输入输入整数m,0
输出如果f[m]是素数 则输出Yes,否则输出No,
每行输出占一行。
样例输入
2
3
...
分类:
其他好文 时间:
2014-07-24 10:36:32
阅读次数:
272
UVA 10689 - Yet another Number Sequence
题目链接
题意:斐波那契给前两项,求出第n项,并保留m位
思路:挺裸的矩阵快速幂,就是取模的值是10^m
代码:
#include
#include
const int mod[5] = {0, 10, 100, 1000, 10000};
int t, a, b, n, m;
s...
分类:
其他好文 时间:
2014-07-22 00:31:37
阅读次数:
279
您可能听说过,带有 yield 的函数在 Python 中被称之为 generator(生成器),何谓 generator ? 我们先抛开 generator,以一个常见的编程题目来展示 yield 的概念。 如何生成斐波那契數列 斐波那契(Fibonacci)...
分类:
编程语言 时间:
2014-07-21 10:24:08
阅读次数:
281
关于该指标的说明详见:《缠中说禅板块强弱指标的实现》简述:选用以斐波那契数列5,13,21,34,55,89,144,233为参数的均线构成均线系统,用该系统建立一个完全的分类去判断走势的强弱与先后。股价位于所有均线之上为第9类,为最强走势[注:最强走势不一定完全在均线之上,这里进行了简化处理];股...
分类:
其他好文 时间:
2014-07-19 13:26:55
阅读次数:
241
1.原题展示:一根棒子上有n个环(n 2 #include 3 #include 4 #define size 3 5 #define mod 200907 6 struct Mat 7 { 8 long long num[size][size]; 9 };10 Mat init,r;//定义全局变...
分类:
其他好文 时间:
2014-07-19 00:19:38
阅读次数:
202
#include "stdafx.h"int _tmain(int argc, _TCHAR* argv[]){ int a = 1, b = 1, c = 0; int max = 0x7FFFFFFF; printf("%d\n", max);// 打印一下整型的最大值 ...
分类:
其他好文 时间:
2014-07-18 23:36:57
阅读次数:
191