题解 | #大数加法#

大数加法

https://www.nowcoder.com/practice/11ae12e8c6fe48f883cad618c2e81475

import java.util.*;


public class Solution {
    /**
     * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
     *
     * 计算两个数之和
     * @param s string字符串 表示第一个整数
     * @param t string字符串 表示第二个整数
     * @return string字符串
     */
    public String solve (String s, String t) {
       
        if(s.length() < t.length()){
            //s始终是大数
            //t始终是小数
            String temp = t;
            t = s;
            s = temp;
        }

        //将数据转化为字符串数组
        char[] sArray = s.toCharArray();
        char[] tArray = t.toCharArray();

       //使用栈 将数据保存起来
       Stack s_s = new Stack<Integer>();
       Stack t_s = new Stack<Integer>();

       for(char num : sArray){
            s_s.add(num-'0');
       } 

       for(char num : tArray){
            t_s.add(num -'0');
       }

       //再将数据遍历进行数据计算
       int jinwei = 0;
       
       StringBuffer sbf = new StringBuffer();
       while(!t_s.isEmpty()){
          int sum = (int)s_s.pop() + (int)t_s.pop() + jinwei;
          int lastNum = sum%10;
          jinwei = sum/10;
          sbf.append(lastNum);
       }

       while(!s_s.isEmpty()){
            int sum = (int)s_s.pop() + jinwei;
            int lastNum = sum%10;
            jinwei = sum/10;
            sbf.append(lastNum);
       }

       if(jinwei == 1){
         sbf.append(jinwei);
       }
       return sbf.reverse().toString();
    }
}

全部评论

相关推荐

05-11 20:45
已编辑
西南石油大学 Java
程序员小白条:中小厂可以,但主要28届的话,一般都得大三上了,暑假的话机会比较少,全国投或许可以
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务