You are viewing a single comment's thread. Return to all comments →
i wrote it in c..its giving correct output in devcpp,but here it shows wrong output..
#include<stdio.h> #include<string.h> void stringmul(char*,char*,char*); void stringadd(char*,char*,char*); void swap(char*,char*); void strdrev(char*); int main() { char a[150],b[150]; char mul[150]="",add[150]=""; int l1,l2,i,l,n,j; scanf("%s",a); scanf("%s",b); scanf("%d",&n); for(i=2;i<n;i++) { memset(mul,'\0',150); memset(add,'\0',150); stringmul(b,b,mul); stringadd(mul,a,add); l1=strlen(mul); //printf("a=%s b=%s mul=%s add=%s\n",a,b,mul,add); for(j=0;j<l1;j++) { a[j]=b[j]; b[j]=add[j]; } } printf("%s",add); } void stringmul(char *a,char *b,char *mul) { int i,j,l1,l2,c,c1,temp=0,k,temp1; l1=strlen(a); l2=strlen(b); //printf("(%s,%s)",a,b); strdrev(a); //strdrev(b); //printf("(%s,%s)",a,b); for(i=0;i<l1;i++) { c=0; k=0; c1=0; for(j=0;j<l2;j++) { temp=(a[i]-'0')*(b[j]-'0')+c; if(mul[i+j+k]==0) temp1=(mul[i+j+k])+(temp%10)+c1; else temp1=(mul[i+j+k]-'0')+(temp%10)+c1; mul[i+j+k]=(temp1%10)+'0'; c1=temp1/10; c=temp/10; } if(c1!=0||c!=0) mul[i+j+k]=c1+c+'0'; k++; } strdrev(mul); strdrev(a); } void stringadd(char *a,char *b,char *add) { int i,l1,l2,c,temp=0,p,q; l1=strlen(a); l2=strlen(b); strdrev(a); strdrev(b); int l=l1>l2?l1:l2; c=0; for(i=0;i<l;i++) { temp=0; if(i<l1) temp=a[i]-'0'; if(i<l2) temp=temp+b[i]-'0'; temp=temp+c; add[i]=(temp%10)+'0'; c=temp/10; } if(c!=0) add[i]=c+'0'; strdrev(add); strdrev(a); strdrev(b); } void strdrev(char *a) { int l=strlen(a),i=0; l--; while(i<l) { swap(&a[i],&a[l]); i++; l--; } } void swap(char *a,char *b) { char temp; temp=*a; *a=*b; *b=temp; }
Seems like cookies are disabled on this browser, please enable them to open this website
Fibonacci Modified
You are viewing a single comment's thread. Return to all comments →
i wrote it in c..its giving correct output in devcpp,but here it shows wrong output..