大型非负整数加法、乘法
Long long能存储的数长度最大仅为20位,当数据超过了,便不能再进行普通的计算。
一、加法
把超长的数据看成字符串,以字符数组来存储,第一个字符即该数据的最高位。对两个数组从最低位开始逐位相加,相加的结果对10取余,即计算结果在该位的数字,考虑到可能有进位,把相加的结果除10(小数部分会被抛弃),加入到下一轮更高位的计算。
//s=s1+s2 我把s定义的是int数组
void add(char * s1,char * s2)
{ int i,j,a;
memset(s,0,sizeof(s));
a=0;
if(l1>l2) L=l1+1;
else L=l2+1; //考虑计算结果的最大长度