#include <stdio.h>
#include<malloc.h>
#include<iostream.h>
#include <cstring>
#define MAX_LEN 200
char szLine1[MAX_LEN+10];
char szLine2[MAX_LEN+10];
typedef struct Node
{
int data;
Node *next;
}Node,*Linklist;
void InitList(Node *first)
{
first=(Linklist)malloc(sizeof(Node));
first->next=NULL;
}
Node *Creat(Linklist &first,char a[])
{
Linklist s;
int i;
int nlen=strlen(a);
for(i=0;i<=nlen-1;i++)
{
s=(Linklist)malloc(sizeof(Node));
s->data=a[i]-'0';
s->next=first->next;
first->next=s;
}
return first;
}
Node * inverse(Linklist &first)
{
Linklist first2=(Linklist)malloc(sizeof(Node));
first2->next=NULL;
Node*p=first->next;
Linklist s;
while(p!=NULL)
{
s=(Linklist)malloc(sizeof(Node));
s->data=p->data;
s->next=first2->next;
first2->next=s;
p=p->next;
}
return first2;
}
Linklist add(Linklist l1,Linklist l2,Linklist l)
{
int flag=0;
Linklist l3=l;
Node *r1=l1->next;
Node *r2=l2->next;
Node *r=l->next;
while(r1 && r2)
{
int sum=r1->data+r2->data;
r->data=(sum+flag)%10;
if(sum>=10)
flag=1;
else
flag=0;
r1=r1->next;
r2=r2->next;
r=r->next;
}
while(flag && r!=NULL)
{
int sum2=r->data+flag;
r->data=sum2%10;
if(sum2>=10)
flag=1;
else
flag=0;
r=r->next;
}
if(flag)
{
Linklist l4=l3;
while(l4->next!=NULL)
{
l4=l4->next;
}
Node *s=(Linklist)malloc(sizeof(Node));
s->data=flag;
l4->next=s;
s->next=NULL;
}
return l3;
}
void print(Linklist &first)
{
Node *q=first->next;
while(q)
{
cout<<q->data;
q=q->next;
}
}
int main()
{
cin>>szLine1;
cin>>szLine2;
Linklist A,B;
A=(Linklist)malloc(sizeof(Node));
A->next=NULL;
B=(Linklist)malloc(sizeof(Node));
B->next=NULL;
Creat(A,szLine1);
Creat(B,szLine2);
Linklist L;
Linklist a1=A;
Linklist b1=B;
int la=0,lb=0;
while(a1->next!=NULL)
{
la++;
a1=a1->next;
}
while(b1->next!=NULL)
{
lb++;
b1=b1->next;
}
if(la>=lb)
L=A;
else
L=B;
Linklist L1=add(A,B,L);
Linklist L2=inverse(L1);
print(L2);
return 0;
}
没有合适的资源?快使用搜索试试~ 我知道了~
Link-list-add.zip_link.add()
共12个文件
pdb:2个
dsw:1个
exe:1个
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 143 浏览量
2022-09-21
18:56:55
上传
评论
收藏 276KB ZIP 举报
温馨提示
用单链表实现两个大整数的相加,输入为两个大整数,输出两个大数的和。
资源推荐
资源详情
资源评论
收起资源包目录
Link-list-add.zip (12个子文件)
大数相加
大数相加.opt 48KB
大数相加.ncb 49KB
大数相加.dsw 541B
大数相加.plg 910B
Debug
jiafa.obj 7KB
大数相加.ilk 249KB
vc60.idb 81KB
大数相加.exe 208KB
大数相加.pdb 505KB
vc60.pdb 100KB
jiafa.cpp 2KB
大数相加.dsp 4KB
共 12 条
- 1
资源评论
JonSco
- 粉丝: 70
- 资源: 1万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功