check my code below...it works for all cases....
*
**node *MUL(node *h1,node *h2)
{
     node *h3,*p,*r;
     h1 = reverse(h1);
     h2 = reverse(h2);
     h3 = multiply(h1,h2->data);
     h2 = h2->next;
     p = h3;
     while(h2)
     {
              r = multiply(h1,h2->data);
              p->next = add(p->next,r);
              p = p->next;
              h2 = h2->next;
     }
     h3 = reverse(h3);
     return h3;
}

**node *multiply(node *h,int x)
{
     node *head = NULL;
     node *p;
     int mul,carry=0;
     while(h)
     {
        if(!head)
        {
            head = (node *)malloc(sizeof(node));
            mul = (x*(h->data));
            carry = mul/10;
            mul=mul%10;
            head->data=mul;
            head->next = NULL;
            p = head;
        }
        else
        {
            p->next = (node *)malloc(sizeof(node));
            p = p->next;
            p->next = NULL;
            mul = (x*(h->data));
            p->data = (mul%10)+carry;
            carry = mul/10;
        }
        h = h->next;
     }
     if(carry)
     {
            p->next = (node *)malloc(sizeof(node));
            p = p->next;
            p->next = NULL;
            p->data = carry;
     }
     return head;
}

node * add(node *h1,node *h2)
{
     node *h3 = NULL;
     node *p;
     int sum,carry = 0;
     while(h1)
     {
        sum = h1->data+h2->data+carry;
        carry = sum/10;
        sum = sum%10;
        if(h3==NULL)
        {
           h3 = (node *)malloc(sizeof(node));
           h3->data = sum;
           h3->next = NULL;
           p =h3;
        }
        else
        {
           p->next = (node *)malloc(sizeof(node));
           p = p->next;
           p->next = NULL;
           p->data = sum;
        }
        h1 = h1->next;
        h2 = h2->next;
     }
     while(h2)
     {
            p->next= (node *)malloc(sizeof(node));
            p = p->next;
            p->next = NULL;
            sum = h2->data + carry;
            carry = sum/10;
            sum = sum%10;
            p->data = sum;
            h2 = h2->next;
     }
     if(carry)
     {
            p->next = (node *)malloc(sizeof(node));
            p = p->next;
            p->next = NULL;
            p->data = carry;
     }
     return h3;
}

*
On Mon, Jul 18, 2011 at 2:34 AM, aditi garg <aditi.garg.6...@gmail.com>wrote:

> and 6 is carry forwarded???
> next node wud be 6*7=42+6=48
> 8 and 4 carry?
>
>
> On Mon, Jul 18, 2011 at 2:28 AM, hary rathor <harry.rat...@gmail.com>wrote:
>
>> sorry 7*9=63
>>
>> put 3 in list 3
>>
>> --
>> 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.
>>
>>
>
>
> --
> Aditi Garg
> Undergraduate Student
> Electronics & Communication Divison
> NETAJI SUBHAS INSTITUTE OF TECHNOLOGY
> Sector 3, Dwarka
> New Delhi
>
>  9718388816
>
>  --
> 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.
>



-- 
*Piyush Sinha*
*IIIT, Allahabad*
*+91-7483122727*
* <https://www.facebook.com/profile.php?id=100000655377926> "NEVER SAY
NEVER"
*

-- 
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