美文网首页
精度加减(大数加法和减法的实现)

精度加减(大数加法和减法的实现)

作者: Wilbur_ | 来源:发表于2021-01-14 09:32 被阅读0次

听起来好像是个编程语言都应该自带的功能,但是通过在编程语言里实现加法和减法会让别人看到你是否了解计算机的原理
这个通常是很多面试的基础问题,然后通过这个之后在深入。属于热身类型的题目。下面是实现它们的代码
加法:

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String n1 = br.readLine();
        String n2 = br.readLine();
        int[] num1 = new int[n1.length()];
        int[] num2 = new int[n2.length()];
        int idx = 0;
        for (int i = n1.length() - 1; i >= 0; i--) num1[idx++] = n1.charAt(i) - '0';
        idx = 0;
        for (int i = n2.length() - 1; i >= 0; i--) num2[idx++] = n2.charAt(i) - '0';
        int[] res = add(num1, num2);
        // System.out.print(Arrays.toString(res));
        if (res[res.length - 1] != 0) {System.out.print(res[res.length-1]);}
        for (int i = res.length - 2; i >= 0; i--) {
            System.out.print(res[i]);
        }
    }
    static int[] add(int[] n1, int[] n2) {
        int maxLength = Math.max(n1.length, n2.length) + 1;
        int[] res = new int[maxLength];
        int sum = 0;
        for (int i = 0; i < n1.length || i < n2.length; i++) {
            if (i < n1.length) sum += n1[i];
            if (i < n2.length) sum += n2[i];
            res[i] = sum % 10;
            sum /= 10;
        }
        if (sum != 0) {
            res[maxLength - 1] = sum;
        }
        return res;
    }
}

相关文章

  • 精度加减(大数加法和减法的实现)

    听起来好像是个编程语言都应该自带的功能,但是通过在编程语言里实现加法和减法会让别人看到你是否了解计算机的原理这个通...

  • 高精度(加法&乘法&减法)

    高精度加法: 高精度乘法: 高精度减法:

  • 机试常用算法和题型-大数专题

    大数专题 字符加减关系,实现任意长度整数相加 大数加法,进阶转换版 大数浮点数加法 大数运算之阶乘

  • 数学作业1

    第一章 四则运算 第1课加法和减法 姓名: 一、 一、加减法模型巩固 加减法模型巩固 一、加减法模型巩固 ...

  • 2018-05-31

    《小数的加法和减法》教学反思 本节课的内容是在学生学习整数加减法基础上进行教学的。对于小数加减法...

  • 人生加减法

    成长是做加法,成熟是做减法。 人生,确实一直在做加减法。烦恼是加法,快乐是减法;疾病是加法,健康...

  • 人生加减法

    成长是做加法,成熟是做减法。 人生,确实一直在做加减法。烦恼是加法,快乐是减法;疾病是加法,健康是...

  • 图书馆(两位数加一位数的进位加法)教学反思

    本节内容既是20以内加减法和100以内加减法的不进位加法的进一步发展。也是学习两位数加两位数进位加法的...

  • 2018-05-31

    《小数的加法和减法》学反思 本节课的内容是在学生学习整数加减法基础...

  • Swift-整数的减法,乘法和除法

    题目:实现整数的减法,乘法和除法,只允许使用加法. 减法 减法是加法的另外一种形式,减法通过取反可以变成加法. ...

网友评论

      本文标题:精度加减(大数加法和减法的实现)

      本文链接:https://www.haomeiwen.com/subject/uzjmaktx.html