首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C语言 >

数据结构:超长正整数相加相乘,该怎么解决

2012-11-08 
数据结构:超长正整数相加相乘关于超长正整数相加进一的思路以及超长正整数相乘思路希望大神们指导最好能有

数据结构:超长正整数相加相乘
关于超长正整数相加进一的思路以及超长正整数相乘思路希望大神们指导
最好能有代码
先谢谢了

[解决办法]

C/C++ code
#include <stdio.h>#include <stdlib.h>#include <string.h>typedef struct LNode{    int data;    struct LNode *next;}LNode, *LinkList;LinkList ListInsert(LinkList L,int e){    LinkList n;    if(n=(LinkList)malloc(sizeof(LNode)))    {        n->data=e;        n->next=L;        return n;     }else return L;}void DisplyList(LinkList L){    LinkList P=L;    while(P)    {        printf("%d",P->data);        P=P->next;    }    printf("\n");}void push(char *s,LinkList *L){    char t[4];    int m=0;    while(*s!='\0')    {        if(strlen(s)%4==1)        {            t[m++]=*s;            (*L)=ListInsert((*L),atoi(t));            m=0;        }else t[m++]=*s;        s++;    }}void add(LinkList L1,LinkList L2,LinkList *addL){    int c=0;    while(L1 && L2)    {        (*addL)=ListInsert((*addL),(L1->data+L2->data)%10000+c);        c=(L1->data+L2->data)/10000;        L1=L1->next;L2=L2->next;    }    if(L1)     {        while(L1)        {            (*addL)=ListInsert((*addL),L1->data+c);            c=0;            L1=L1->next;        }    }    if(L2)     {        while(L2)        {            (*addL)=ListInsert((*addL),L2->data+c);            c=0;            L2=L2->next;        }    }}int main(int argc, char *argv[]){        LinkList L1,L2,addL;    L1=L2=addL=NULL;     if(argc!=3)    {        printf("1+1=3\n");        return -1;    }    else    {        push(argv[1],&L1);        push(argv[2],&L2);    }    add(L1,L2,&addL);    printf("%s + %s = ",argv[1],argv[2]);    DisplyList(addL);    return 0;}
[解决办法]
咋变成两个帖子了
见另一个帖子

热点排行