你的意思是要直接从(BigInt1 = {9, 9, 4} Length1 = 3)+(BigInt2  = {1, 8} Length2 = 2)得出 BigInt3 = {1, 0,1,2} 
Length2 = 4而不能用994+18=1012 然后再转化还是怎么的  我不是很理解

解决方案 »

  1.   

    我觉得应该把数组元素倒过来排,比如994=>{4,9,9},18=>{8,1}
    这样可以
    设置c[]长度为bigint1和bigint2中长度大的一个的长度+1,所有元素初始化为0。
    public void jisuan()
    {
    int[] a={9,9,4};
    int[] b={8,1};
    int[] c=new int[4];//大数组的长度加1
    for(int i=0;i<b.length;i++)//用小数组的长度
    {
    c[i]+=a[i]+b[i];
    if(c[i]>9)//有进位
    {
    c[i]-=10;
    c[i+1]+=1;
    }
    }
    for(int i=b.length;i<a.length;i++)//将大数组的高位数转移过来
    {
    c[i]+=a[i];
    if(c[i]>9)//也有可能进位
    {
    c[i]-=10;
    c[i+1]+=1;
    }
    }
    for(int i=0;i<c.length;i++)//得到结果{7,1,5,0}=>517
    System.out.print(c[i]);
    }