斐波那契
凌阡陌
随心而为,我自逍遥
展开
-
hdu3117
非常好的一道题目,包括了f[n]=f[n-1]+f[n-2]的递推计算、前4位、后四位值的计算。 前39位利用递推即可。 39位之后,求前四位利用公式,s=(1/sqrt(5))*(1+sqrt(5))^i,d.xxx=10^log10(s)-(int)log10(s)+3; d即为前4位的值 后四位的值利用矩阵连乘求得。 但值得注意的是求后四位的时候可能出现123,三位的情况,因为倒数第原创 2012-07-21 10:33:31 · 297 阅读 · 0 评论 -
hdu1708
很简单的一道题,就是每个分量均满足f(n)=f(n-1)+f(n-2) #include #include #include using namespace std; int num[60][30]; int main() { int t,k,i,j; char a[30],b[30]; scanf("%d",&t); while(t--) {原创 2012-07-23 18:27:02 · 399 阅读 · 0 评论 -
hdu1588 Fibonacci and 矩阵连乘
题目描述:实际上是求f(b)+f(k+b)+f(2*k+b)+......+f((n-1)*k+b) 0 1 f(b-1) f(b) 1 1 * f(b) = f(b+1) 故令A=0 1 则f(b)=A^b; f(k+b)=A^(k+b); 1 1 所以题目改为求A^b+A^(k+b)+A^(2*k+b)+......+A^((n原创 2012-07-23 16:52:34 · 262 阅读 · 0 评论 -
hit2255矩阵连乘求Fibonacci的和
1 1 0 s(n-1) s(n) ( 0 p q ) * ( f(n) ) = ( f(n+1) ) 0 1 0 f(n-1) f(n) 注意不能因为m[0][2]=0在求结果的时候就不乘它。 另外这个题应该用long long。。。 还有,因为在题中有quickpow(s-1) 所以应该分为3中情况。。。原创 2012-07-22 20:06:08 · 257 阅读 · 0 评论 -
hit1533
也是运用大数求斐波那契数的题目#include #include using namespace std; int s[10000][356]={0}; int solve() { int i,j; s[1][1]=1; s[2][1]=1; for(i=3;i<10000;i++) { for(j=1;j<350;j++)原创 2012-07-21 14:10:44 · 219 阅读 · 0 评论 -
poj3070
应用矩阵连乘求斐波那契的后几位数的典型题目 #include #include using namespace std; #define MAX 2 #define Mod 10000 typedef struct { int m[MAX][MAX]; }Matrix; Matrix P={0,1,1,1}; Matrix I={1,0,0,1}; Matrix matrixmul(原创 2012-07-21 14:09:48 · 275 阅读 · 0 评论 -
hdu1568
#include #include #include using namespace std; int f[21]; int main() { int n,i,ans; double s,t,tmp; f[0]=0; f[1]=1; f[2]=1; for(i=3;i<=20;i++)//前20的斐波那契数是4位数 f[i]=f原创 2012-07-21 14:08:32 · 188 阅读 · 0 评论 -
hit2060
值得注意的是在求矩阵的时候,将b+2和a+1看做一个整体来处理,不要处理了两遍 另一方面,虽然b>a, 但是由于这9位数是求余之后的,所以有可能是负数,负数求余公式(ans%Mod+Mod)%Mod #include #include using namespace std; #define MAX 2 #define Mod 1000000000 typedef struct {原创 2012-07-21 20:49:21 · 259 阅读 · 0 评论 -
hdu1250
只能用大数了,这个代码是以8位为一组的。 #include #include using namespace std; int s[10000][356]={0}; int solve() { int i,j; s[1][1]=1; s[2][1]=1; s[3][1]=1; s[4][1]=1; for(i=5;i<10000;i++){原创 2012-07-21 11:19:23 · 217 阅读 · 0 评论 -
hdu1893Fibonacci相关
Now Sempr found another Numbers, he named it "Sibonacci Numbers", the definition is below: f(x)=0 (x f(x)=1 (0 f(x)=f(x-1)+f(x-3.14) (x>=1) 将每项都乘以100,就可以按照正常的斐波那契来做。输入采用字符串,在处理符号时方便。。。#include原创 2012-07-24 14:19:59 · 349 阅读 · 0 评论