Java之大数加减乘除——加法
之前构建的类是通过输入字符串转换成数组来实现大数计算,接下来就是做两个数组之间加法。
创建类的时候构造一个方法使其可以实现计算:就是类似有 a、b 都是BigLong这个类的,那a+b就可以调用a.add(b)实现加法。
数组加法其实就和小学竖式计算一样,先对齐,从最小位开始相加,超过十就前面进一,具体实现如下:
void add(BigLong b){
		int ia=this.num.length;
		int ib=b.num.length;
		int m=ib,n=ia;
		if(ia>ib){
			m=ia;
			n=ib;
		}
		int[] count=new int[m+2];
		int i,j,z;
		int flag=0;
		
		for (i=ia-1,j=ib-1,z=m+1;i*j>0;i--,j--,z--){
			count[z]=this.num[i]+b.num[j];
		}
		count[z]=this.num[i]+b.num[j];
		i--;
		j--;
		z--;
		if(i>-1){
			while(i>=0){
				count[z]=this.num[i];
				i--;
				z--;
			}
		}
		if(j>-1){
			while(j>=0){
				count[z]=b.num[j];
				j--;
				z--;
			}
		}
		
		for(i=m+1;i>=0;i--){
			if(count[i]>=10){
				count[i]=count[i]%10;
				count[i-1]=count[i-1]+1;
			}
		}
		
		for(i=0;i<count.length;i++){
			if(count[i]!=0){
				flag=1;
			}
			if(flag==1)	System.out.print(count[i]);	
		}
		
	}
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号