• 大数相加Java


    题目

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

    分析

    两个字符串,定义两个指针,分别从这两个字符串的结尾开始遍历,因为可能字符串1比字符串2长度要长,因此只要两者其中有一个还没遍历玩,另一个就用0来补全空位;指针从后往前获取当前两个元素,将当前两个字符,都减去’0’,这就将字符转换成了数字,再将这两个数字和进位值相加,记得初始化进位值是0,然后定义一个变量res,res = (l+r+ans),ans = res/10; l和r分别是两个指针,ans是进位数。最后每次循环将res%10+'0’添加到StringBuilder中,最后将StringBuilder中的值翻转转换成字符串返回。

    代码实现

    /**
         * 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
         * 计算两个数之和
         * @param s string字符串 表示第一个整数
         * @param t string字符串 表示第二个整数
         * @return string字符串
         */
        public String solve (String s, String t) {
            // write code here
            StringBuilder builder = new StringBuilder();
            int n1 = s.length()-1;
            int n2 = t.length()-1;
            int ans = 0;
            while (n1>=0||n2>=0||ans==1){
                int l = n1>=0 ? (s.charAt(n1--)-'0'):0;
                int r = n2>=0 ? (t.charAt(n2--)-'0'):0;
    
                int res = l+r+ans;
                ans = res/10;
                char c =(char)(res%10+'0');
                builder.append(c);
            }
            return builder.reverse().toString();
            
        }
    
  • 相关阅读:
    ES 6 系列
    ES 6 系列
    EChart.js 笔记二
    EChart.js 笔记一
    图像阈值_有cv2.threshold,cv2.adaptiveThreshold 等。
    几何变换——放大、镜像、平移、旋转、透视、仿射
    颜色空间转换---追踪物体
    图像算术运算——相加、相减、与、或、异或、非
    javascript中json对象与字符串互转及取值
    爬虫:Selenium + PhantomJS
  • 原文地址:https://www.cnblogs.com/dataoblogs/p/14121821.html
Copyright © 2020-2023  润新知