时间复杂度为O( log n )的方法: 该算法使用矩阵乘法操作,使得算法时间复杂度为 O(logN)long long Fibonacci( unsigned n ) { int result[2] = {0, 1}; if(n 0); Matrix m; if( n == 1) { ...
分类:
编程语言 时间:
2016-03-16 20:45:40
阅读次数:
292
http://poj.org/problem?id=3070 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn ? 1 + Fn ? 2 for n ≥ 2. For example, the
分类:
其他好文 时间:
2016-03-15 18:32:29
阅读次数:
184
题意:给定fibonacci数列的前100000项的前n位(n<=40);问你这是fibonacci数列第几项的前缀?如若不在前100000项范围内,输出-1; 思路:直接使用数组模拟加法,再用Trie树插入查找即可;但是一般使用new Trie()的代码都是MLE的。反而我之前写的,直接得到数组大
分类:
其他好文 时间:
2016-03-15 06:15:33
阅读次数:
192
这个问题中一个特点就是使用scanf输入,如果是cin的话就会超时。 另附一个从网上找到的代码:
分类:
其他好文 时间:
2016-03-14 21:57:16
阅读次数:
154
计算机算法设计与分析 之Fibonacci数列 无穷数列1,1,2,3,5,8,13,21,34,55,...,称为Fibonacci数列。关于它的三种方法: ①简单变量法 设置四个变量,f1, f2, f, i 再结合循环完成算法(以前二十项为例) #include<studio.h> int m
分类:
编程语言 时间:
2016-03-08 21:02:06
阅读次数:
185
【项目:求Fibonacci数列】 Fibonacci数列在计算科学、经济学等领域中广泛使用,其特点是:第一、二个数是1,从第3个数开始,每个数是其前两个数之和。据此,这个数列为:1 1 2 3 5 8 13 21 34 55 89 ……,请设计程序,输出这个数列,直到这个数字超过10000。
【提示】数列可以表示为:
{f1=f2=1fn=fn?1+fn?2,n>2\begin{case...
分类:
编程语言 时间:
2016-03-08 12:08:07
阅读次数:
178
问题描述 Fibonacci数列的递推公式为:Fn=Fn-1+Fn-2,其中F1=F2=1。 当n比较大时,Fn也非常大,现在我们想知道,Fn除以10007的余数是多少。 输入格式 输入包含一个整数n。 输出格式 输出一行,包含一个整数,表示Fn除以10007的余数。 说明:在本题中,答案是要求Fn
分类:
其他好文 时间:
2016-03-06 15:50:34
阅读次数:
204
#include<stdio.h>int main(){ int a[20]={1,1}; int n=2,i; for(n=2;n<20;n++) { a[n]=a[n-1]+a[n-2]; } for(i=0;i<20;i++) { if(i%5==0) printf("\n"); printf
分类:
编程语言 时间:
2016-03-06 01:01:37
阅读次数:
156
用数组来处理求Fibonacci数列问题。解:程序:#include<stdio.h>intmain(){ inti,f[20]={1,1};//对最前面两个元素f[0]和f[1]赋初值1 for(i=2;i<20;i++) { f[i]=f[i-2]+f[i-1];//先后求出f[2]~f[19]的值 } for(i=0;i<20;i++) { if(i%5==0)//控制每输出5个数后换行..
分类:
编程语言 时间:
2016-03-01 19:15:07
阅读次数:
1626
简单矩阵快速幂。 if(m==1) MOD=10; if(m==2) MOD=100; if(m==3) MOD=1000; if(m==4) MOD=10000; 剩下的就是矩阵快速幂求斐波那契数列第n项取模 #include<cstdio> #include<cstring> #include<
分类:
其他好文 时间:
2016-02-29 22:52:57
阅读次数:
207