📄 key01_5.cpp
字号:
//{ Test01_5 } { Big number: add }
#include"seqlists.h"
unsigned char s[20];
SeqList A,B,C;
void StrToSeqList(string s,SeqList& A)
{ int i,L;
boolean suc;
unsigned char s1[20];
Ltrim(s,s1);
unsigned char s2[20];
Rtrim(s1,s2);
strcpy(s,s2);
L=strlen(s);
i=L-1;
suc=true;
while ( (i>=0)&&suc)
if (s[i]>='0'&&s[i]<='9')
{ A.data[L-i]=s[i]-'0';
i=i-1;
}
else
suc=false;
if (!suc)
Error_exit("There have illeage char in string");
A.Last=strlen(s);
for (i=A.Last+1;i<=SeqList_maxsub(A);i++)
A.data[i]=0;
}
void SeqListToStr(SeqList& A,string s)
{
int i;
boolean suc;
strcpy(s,"");
for (i=A.Last;i>=1;i--)
s[A.Last-i]=A.data[i]+'0';
}
void AddSeqList(SeqList& A,SeqList& B,SeqList& C)
{ int i,S,Carry,maxsub;
Carry=0;
maxsub=Max(A.Last,B.Last);
set_SeqList_Last(C,0);
for (i=1;i<=maxsub;i++)
{ cur_SeqList_elmn_onoff(A,i);
cur_SeqList_elmn_onoff(B,i);
getch();
S=A.data[i]+B.data[i]+Carry;
Inc_SeqList_Last(C,1);
C.data[i]=S%10;
Carry=S/10;
display_SeqList_elmn(C,i);
cur_SeqList_elmn_onoff(C,i);
getch();
cur_SeqList_elmn_onoff(A,i);
cur_SeqList_elmn_onoff(B,i);
cur_SeqList_elmn_onoff(C,i);
}
if (Carry>0)
{ Inc_SeqList_Last(C,1);
C.data[C.Last]=Carry;
display_SeqList_elmn(C,C.Last);
cur_SeqList_elmn_onoff(C,i);
}
}
void AddStringNum(string s1,string s2,string s3)
{
StrToSeqList(s1,A);
StrToSeqList(s2,B);
clear_SeqList(C);
move_SeqList_mid(A,getmaxx()/2,60);
move_SeqList_mid(B,getmaxx()/2,180);
move_SeqList_mid(C,getmaxx()/2,300);
gotoxy(1,1);
cout<<s1<<'+'<<s2<<'=';
AddSeqList(A,B,C);
SeqListToStr(C,s3);
cout<<s3;
getch();
}
main()
{
set_SeqList_dir(A,"A",horizon,-1,1,18);
set_SeqList_dir(B,"B",horizon,-1,1,18);
set_SeqList_dir(C,"C",horizon,-1,1,18);
AddStringNum("1234567","2345678", s);
AddStringNum("123456789012","345678989765", s);
AddStringNum("32123451234567","13332345678", s);
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -