Ask Question

Name:
Title:
Your Question:

Answer Question

Name:
Your Answer:
User Submitted Source Code!


Description:
  fibanocci
Language: C/C++
Code:
#include<stdio.h>
 #include<stdlib.h>
 int (*mm(int c[][2],int d[][2]))[2]
{
  int j,k,l;
  int p[][2]={0,0,0,0};
  int (*b)[2];
  b=p;
  for(j=0;j<2;j++)
    for(l=0;l<2;l++)
      for(k=0;k<2;k++)
    p[j][l]=c[j][k]*d[k][l]+p[j][l];

  return b;
}
int main(int argc,char* argv[])
{
  int a,c,i,l,k=0,fk=0,f2k,fk1=1,f2k1,f2k2;
  int*b;
  int q[][2]={1,1,1,0};
  int r[][2]={1,0,0,1}; 
  int (*g)[2];
  if (argc!=2){
  printf("Enter program name and input to program");
  return 0;}
  a=atoi(argv[1]);
    c=a;
    for(i=0;c>=1;c/=2,i++);
    b=(int*)calloc(i,sizeof(int));
    c=a;
  for(i=0;c>=1;c/=2,i++)
    {
      if(c%2==1)
      b[i]=1;
    } 
    printf("\n Reverse odd even method\n");

  for(i;i>0;i--)
    {
        f2k=fk*(2*fk1-fk);
f2k1=(fk1*fk1)+(fk*fk);
f2k2=f2k+f2k1; 
k=2*k+b[i-1];
      if(b[i-1]==0)
      {fk=f2k;
      fk1=f2k1;
      }
      else if(b[i-1]==1)
       {fk=f2k1;
      fk1=f2k2;}
      printf("f(%d)=%d , f(%d)=%d\n",k,fk,k+1,fk1 );

printf("fibanoci(%d)=%d\n\n",a,fk);
printf("Matrix Power Method\n");
c=a;
 for(i=0;c>=1;c/=2,i++)
    {
        printf("\nR=");
      if(b[i]==1)
      {g=mm(r,q); 
      for(k=0;k<2;k++)
    {printf("\n.");
       for(l=0;l<2;l++)
    {    
        r[k][l]=g[k][l];
     printf("  %d ", r[k][l])  ; 
    }
       
    }
      }
      else
      {
            for(k=0;k<2;k++)
      {printf("\n.");
        for(l=0;l<2;l++)
        printf("  %d ", r[k][l])  ;
    
      }
       
      }
      printf("\nQ=");
          g=mm(q,q); 
         
for(k=0;k<2;k++)
{printf("\n.");
for(l=0;l<2;l++)
     {
     q[k][l]=g[k][l];
     printf("  %d ",q[k][l]);
     }
     
    }
    }
    printf("\n\nfibanoci(%d)=%d\n ",a,r[0][1]);
    return 0;

Comments: