美文网首页
两个大数相加

两个大数相加

作者: 小胡子哥灬 | 来源:发表于2020-12-02 23:09 被阅读0次
    public class LeetCode {
        /**
         * 给定两个字符串数字(超出long的范围),算出两数相加的和。
         * 思路:
         * 1. 先比较两字符串的长度,小的在前面补0,
         * 2. char与int的互换 char c = i + '0', int i = c - '0'
         */
        public String towBigNumberAdd(String v1, String v2) {
            public String twoBigNumAdd (String v1, String v2){
                int len1 = v1.length();
                int len2 = v2.length();
                // 补齐v2的前面为 '0';
                String temp = "0";
                if (len1 > len2) {
                    for (int i = 0; i < len1 - len2 - 1; i++) {
                        temp += "0";
                    }
                    v2 = temp + v2;
                } else if (len1 < len2) {
                    for (int i = 0; i < len2 - len1 - 1; i++) {
                        temp += "0";
                    }
                    v1 = temp + v1;
                }
                int carray = 0;
                char[] array = new char[v1.length() + 1];
                for (int i = v1.length() - 1; i >= 0; i--) {
                    int n1 = v1.charAt(i) - '0';
                    int n2 = v2.charAt(i) - '0';
                    int sum = n1 + n2 + carray;
                    array[i + 1] = (char) (sum % 10 + '0');
                    carray = (sum) / 10;
    
                }
                if (carray != 0) {
                    array[0] = (char) (carray + '0');
                    return new String(array);
                } else {
                    return new String(array, 1, array.length - 1);
                }
            }
        }
    }
    

    相关文章

      网友评论

          本文标题:两个大数相加

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