Java 大数加法算法

softidea 阅读:57 2022-07-29 11:52:02 评论:0

Java_大数加法

题目: 以字符串的形式读入两个数字,编写一个函数计算它们的和,以字符串形式返回。

示例:

 输入: 
     "1","99" 
 返回值: 
     "100" 
 说明: 
     1+99=100

思路:

  1. 第一种方法:强制类型转换(面试中不要直接使用,题目的考点在于模拟 加法的运算过程 )

  2. 第二种方法:

    1. 获取2个字符串长度,进行遍历

    2. 对应个、十、百... 位数进行取值,再运算,取余,对余数追加

 

代码:

    /** 
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 
     * 计算两个数之和 
     * 
     * @param s string字符串 表示第一个整数 
     * @param t string字符串 表示第二个整数 
     * @return string字符串 
     */ 
    public static String solve(String s, String t) { 
        // write code here 
        Long m = Long.valueOf(s); 
        Long n = Long.valueOf(t); 
        Long a = m + n; 
        return a.toString(); 
    } 
 
    /** 
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可 
     * 计算两个数之和 
     * 
     * @param s string字符串 表示第一个整数 
     * @param t string字符串 表示第二个整数 
     * @return string字符串 
     */ 
    public static String solve1 (String s, String t) { 
        // write code here 
        StringBuilder sb = new StringBuilder(); 
        int sl = s.length() - 1; 
        int tl = t.length() - 1; 
        int enter = 0; 
        int remainder = 0; 
        while (sl >= 0 || tl >= 0 || enter > 0) { 
            int snum = sl >= 0 ? s.charAt(sl) - '0' : 0; // int 和 char可以直接运算 
            int tnum = tl >= 0 ? t.charAt(tl) - '0' : 0; 
            int r = snum + tnum + enter; 
            enter = r / 10; 
            remainder = r % 10; 
            sb.append(remainder); 
            sl--; 
            tl--; 
        } 
        return sb.reverse().toString(); 
    }

本文参考链接:https://www.cnblogs.com/mmdz/p/15608893.html
声明

1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

搜索
排行榜
关注我们

一个IT知识分享的公众号