By creating a bugnum library using link list....:)

On Sun, Jul 31, 2011 at 11:12 PM, bharath <bharath.sri...@gmail.com> wrote:

> @Amit: Thanks for the solution but I have seen this approach. I was
> wondering how this can be solved using linked lists without using
> bignum libraries.
>
> Bharath
>
> On Jul 31, 12:38 pm, amit karmakar <amit.codenam...@gmail.com> wrote:
> > Since long long cannot store the 100th Fibonacci number, you need to
> > implement or use an existing library for bignum.
> >
> > You may use linked lists to solve this problem.
> > Read about bignum herehttp://
> en.wikipedia.org/wiki/Arbitrary-precision_arithmetic
> >
> > Here is my implementation for solving this problem,
> > #include <cstdio>
> > #include <algorithm>
> > #include <cstring>
> >
> > using namespace std;
> >
> > #define REP(i, n) for(int i = 0; i < (n); i++)
> > #define FILL(c, v) memset(c, v, sizeof(c))
> >
> > const int MX = 100000;
> > int prv1[MX], prv2[MX], cur[MX], l1, l2, lcur;
> >
> > int main() {
> >     FILL(prv1, 0); FILL(prv2, 0); FILL(cur, 0);
> >     int n;
> >     scanf("%d", &n);
> >
> >     prv1[0] = 0; l1 = 1;
> >     prv2[0] = 1; l2 = 1;
> >     cur[0]  = 0; lcur = 1;
> >     REP(i, n) {
> >         int mx = max(l1, l2);
> >         int carry = 0;
> >         REP(j, mx) {
> >             int imd = prv1[j]+prv2[j]+carry;
> >             cur[j]  = imd%10;
> >             carry   = imd/10;
> >         }
> >         if(carry) {
> >             cur[mx++] = carry;
> >         }
> >         lcur = mx;
> >
> >         REP(j, l1)   prv2[j] = prv1[j]; l2=l1;
> >         REP(j, lcur) prv1[j] = cur[j];  l1=lcur;
> >     }
> >     REP(i, lcur) printf("%d", cur[lcur-i-1]); printf("\n");
> >
> > }
> >
> > On Jul 31, 9:31 pm, bharath sriram <bharath.sri...@gmail.com> wrote:
> >
> >
> >
> >
> >
> >
> >
> > > Since both the "normal" recursive (stack overflow) and non-recursive
> (data
> > > type overflow) versions fails, is there a  way one can use linked lists
> to
> > > solve this problem?
> >
> > > Bharath.
>
> --
> You received this message because you are subscribed to the Google Groups
> "Algorithm Geeks" group.
> To post to this group, send email to algogeeks@googlegroups.com.
> To unsubscribe from this group, send email to
> algogeeks+unsubscr...@googlegroups.com.
> For more options, visit this group at
> http://groups.google.com/group/algogeeks?hl=en.
>
>


-- 
Saurabh Singh
B.Tech (Computer Science)
MNNIT ALLAHABAD

-- 
You received this message because you are subscribed to the Google Groups 
"Algorithm Geeks" group.
To post to this group, send email to algogeeks@googlegroups.com.
To unsubscribe from this group, send email to 
algogeeks+unsubscr...@googlegroups.com.
For more options, visit this group at 
http://groups.google.com/group/algogeeks?hl=en.

Reply via email to