2 u011832823 u011832823 于 2013.12.01 20:52 提问

关于斐波那契矩阵,用递归二分法。哪位大神帮忙看看哪里出问题了?

#include

#include

#include

#define MAX 100
using namespace std;

typedef struct fibo
{
int i1j1;
int i1j2;
int i2j1;
int i2j2;
}fibo;

fibo a[MAX];
fibo FIBO(int num);

fibo MUL(fibo x,fibo y)
{//x、y,2个矩阵相乘,
fibo w;
w.i1j1=x.i1j1*y.i1j1+x.i1j2*y.i2j1;
w.i1j2=x.i1j1*y.i1j2+x.i1j2*y.i2j2;
w.i2j1=x.i2j1*y.i1j1+x.i2j2*y.i2j1;
w.i2j2=x.i2j1*y.i1j2+x.i2j2*y.i2j2;
return w;

}
fibo FIBOMUL(fibo x,fibo y,fibo z,int num)
{
fibo r;
if(num<=2)
return((MUL(MUL(x,y),z)));
else
return(MUL(FIBO(num),FIBO(num)),z);

}
fibo FIBO(int num)
{
a[0].i1j1=a[0].i2j2=1; a[0].i1j2=a[0].i2j1=0;
a[1].i1j1=a[1].i1j2=a[1].i2j1=1; a[1].i2j2=0;
a[2].i1j1=2; a[2].i1j2=a[2].i2j1=a[2].i2j2=1;
fibo result=a[0];
if(num==1)
return a[1];
else if(num==2)
return a[2];
else{
if(num%2==1)
result=FIBOMUL(a[num/2],a[num/2],a[1],num/2);
else
result=FIBOMUL(a[num/2],a[num/2],a[0],num/2);
}
return result;
}

void main()
{
fibo x;
x=FIBO(8);
cout<<x.i1j1<<x.i1j2<<x.i2j1<<x.i2j2;
getchar();
getchar();

}

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!
其他相关推荐
帮忙看看哪里出问题了
内容:<br />using System;<br />using System.Collections.Generic;<br />using System.ComponentModel;<br />using System.Data;<br />using System.Drawing;<br />using System.Text;<br />using System.Windows.Forms;<br /><br />namespace cc<br />{<br />    public parti
查找--顺序查找,二分法,斐波那契查找
相关概念 查找表(Search Table):是由同一类型的数据元素或者记录构成的集合; 关键字(key):是数据元素中某个数据项的值,又叫做键值 如果此关键字可以唯一的标识一个记录,则称此关键字为主关键字(primary key),而对于那些可以识别多个数据元素或者记录的关键字,我们就叫做次关键字(secondary key),这些概念学习过数据库的人应该就会比较熟悉。按照操作方式区分,有两大类查
hookSocket问题程序
此程序不能成功运行,请高手帮忙看看哪里出问题了
二分法查找递归方式()
今天在这个二分法递归查找的算法上想了好久,记下来 1 package day04; 2 public class test9 { 3 public static void main(String[] args) { 4 // 3.使用二分法查找有序数组中元素。找到返回索引,不存在输出-1。使用递归实现 5 6 int[] nums = { 1
矩阵快速幂算法的原理与实践——“使用MATLAB求解大型斐波那契数"
在MATLAB中,使用“矩阵快速幂”求解“大型斐波那契数”
一个简单游戏的程序
简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。简单游戏的程序代码,大神们帮忙看看。
递归实现二分法
编写一个F(n) = n*n + (n-1)(n-1) + … + 1 ;#include<iostream>using namespace std; int sum(int n) { if(n == 1){ return 1; } int temp = 0; temp = (n*n)+ sum(n-1); retur
poj 3070 Fibonacci 【矩阵快速幂 求第N个斐波那契数%1000】
Fibonacci Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 11123   Accepted: 7913 Description In the Fibonacci integer sequence, F0 = 0, F1 = 1, and Fn = Fn
斐波那契数列数组递推,普通递归,记忆化搜索,矩阵快速幂,和公式法
直接数列递推推的时候是O(n)的复杂度,查询的时候是O(1),但是当n很大的时候,数组空间可能有点力不从心 #include #include using namespace std; int fb[45]; int main() { fb[0] = 0; fb[1] = 1; for (int i = 2; i <= 45; i++) { fb[i] = fb[i -
使用递归实现二分法查找
#include "stdio.h" void Search(int p[],int low,int height,int key) { int middle=(low+height)/2; if(low>height) { printf("没有该数!"); return; } if(p[middle]==key) { printf("%d\n",middle); r