题解 | #高精度整数加法#

高精度整数加法

http://www.nowcoder.com/practice/49e772ab08994a96980f9618892e55b6

q57

将两个字符串中的数字保存在两个长度相同(长度设为最长字符串的长度l)的数组中,如果两个字符串的长度不相等,长度短的字符串对应数组的首几个位补0;然后对两个数组中下标相同的元素一一相加(考虑进位),相加后的结果放在另外一个数组(长度设为l + 1,如果两个字符串数组首位相加有进位,则此数值最高位为设为1,结果输出该数组所有元素;否则设为0,不输出该数组的首元素,从第二个元素开始输出)中,然后依次输出该数组中的元素即为结果


    public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        String str1 = sc.nextLine();  
        String str2 = sc.nextLine();
        int index = 0;//进位
        int l = 0;
        if(str1.length() >= str2.length())
            l = str1.length();
        else
            l = str2.length();
        int[] arr1 = new int[l];
        int[] arr2 = new int[l];

        if(str1.length() >= str2.length()){
            for(int i = 0;i < l;i++){
                arr1[i] = str1.charAt(i) - '0';
            }
            for(int i = 0;i < l;i++){
                if(0 <= i && i < l - str2.length()) arr2[i] = 0;
                else arr2[i] = str2.charAt(i - (l - str2.length())) - '0';
            }
        }
        else{
            for(int i = 0;i < l;i++){
                arr2[i] = str2.charAt(i) - '0';
            }
            for(int i = 0;i < l;i++){
                if(0 <= i && i < l - str1.length()) arr1[i] = 0;
                else arr1[i] = str1.charAt(i - (l - str1.length())) - '0';
            }
        }

        int[] result = new int[l + 1];
        for(int i = l - 1;i >= 0;i--){
            int a = arr1[i] + arr2[i] + index;
            if(a >= 10){
                a = a - 10;
                index = 1;
            }
            else index = 0;
            result[i + 1] = a;
        }
        if(arr1[0] + arr2[0] >= 10){
            result[0] = 1;
            for(int i = 0;i <= l;i++)
                System.out.print(result[i]);
        }
        else{
            result[0] = 0;
            for(int i = 1;i <= l;i++)
                System.out.print(result[i]);
        }

    }
}
全部评论

相关推荐

这一生如履薄冰:美赛s就别写了吧
点赞 评论 收藏
分享
02-22 21:16
已编辑
门头沟学院 运营
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务