栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

java——数组相加计算

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

java——数组相加计算

1)题目要求:请完成代码的编写,实现两个存放了超大整数数字的数组的求和,并将数值的值输出出来,例如222222222+3333333333=3555555555,注意开头的0不可输出。

(2)问题分析:本问题实际要完成的是对数组的操作,由于数组中每个数字是一个个的数组元素,看似独立,实则是需要作为一个整体来看待,由于进行加法运算时需要从个位开始加起,意味着对数组元素的访问需要从数组的最后一个元素往前进行,另外每一位上的数字经过加法运算后可能产生进位也是需要注意的,如果产生了进位,则当前结果数组的元素只保留和值的个位,并将产生的进位1先累加到a或者b的下一位上。另外计算过程中可能会存在进位而改变了原数组的内容,所以需要提前输出加法的式子,然后进行求和运算,再输出结果,而输出时,考虑到前面可能存在0,因此输出时需要找到第一个不为0的数字开始输出。

(3)算法设计:第一步,先输出加法式子,通过循环进行数组数字的输出,注意开头的0不可输出;第二步,需要根据当前已有的数组长度来创建一个存储目标结果的数组;第三步,建立循环,因为两个数组等长,所以只需要一个循环,从数组的最后一位往前遍历,对每一位元素进行计算,并判断结果是不是大于等于10,如果是则产生进位,结果数组中的元素只保留其个位,进位的1先累加到a或者b数组的下一个位上;第四步,计算完成后,再通过循环输出结果数组中的数字,同样开头的0不可输出。

(4)实验结果:

A.测试输入1:

a = {0, 9, 9, 7, 9, 4, 5, 6, 7, 2, 3, 4, 5, 6, 4, 7, 8, 9, 8, 7, 6, 9}

b = {0, 0, 5, 9, 1, 6, 4, 5, 6, 2, 3, 4, 5, 7, 2, 1, 3, 4, 0, 3, 2, 9}

预期输出1:

997945672345647898769+59164562345721340329=1057110234691369239098

public class HandleLargeNumber
{
    public static void add(int[] a, int[] b)
    {
        int[] c = null;
        c=new int [a.length];
        int temp=0;//保存上一位的进数,默认个位数运算之前进数为0
        for (int i= a.length-1;i>=0;i--)
        {
            c[i]=(a[i]+b[i]+temp)%10;
            temp=(a[i]+b[i]+temp)/10;//我真是太聪明了
        }
        Jude_Print(a);
        System.out.print("+");
        Jude_Print(b);
        System.out.print("=");
        Jude_Print(c);
        System.out.println();
    }

    public static void Jude_Print(int [] d)
    {
        for (int i=0;i< d.length;i++)
        {
            if (d[i]!=0)
            {
                for (; i < d.length; i++)
                {
                    System.out.print(d[i]);
                }
                break;
            }
        }
    }

    public static void main(String[] args)
    {
        int[] a = {0, 9, 9, 7, 9, 4, 5, 6, 7, 2, 3, 4, 5, 6, 4, 7, 8, 9, 8, 7, 6, 9};
        int[] b = {0, 0, 5, 9, 1, 6, 4, 5, 6, 2, 3, 4, 5, 7, 2, 1, 3, 4, 0, 3, 2, 9};
        add(a, b);
    }
}

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/762482.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号