这个专题呢,我就来讲讲高精度的加法,下面是一个计算加法的函数(用数组a加上数组b结果存到数组c里面)。
思路:先测一下数组a和数组b的长度,分别放到a[0]、b[0]里面去,再从第二位开始相加,记得满十要进一,在最后还要处理最高位的一个进位。
代码如下:
1 void add(int a[],int b[],int c[]) 2 { 3 int x=0,i=1; 4 memset(c,0,sizeof(c)); 5 while(i<=a[0]||i<=b[0]) 6 { 7 c[i]=a[i]+b[i]+x; 8 x=c[i]/10; 9 c[i]=c[i]%10; 10 i++; 11 } 12 c[i]=x;//最高位的一个进位 13 if(c[i]==0) i--; 14 c[0]=i; 15 }