989. 数组形式的整数加法

缺乏、安全感 2023-10-05 20:38 129阅读 0赞

对于非负整数 X 而言,X数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 [1,2,3,1]

给定非负整数 X 的数组形式 A,返回整数 X+K 的数组形式。

示例 1:

  1. 输入:A = [1,2,0,0], K = 34
  2. 输出:[1,2,3,4]
  3. 解释:1200 + 34 = 1234

示例 2:

  1. 输入:A = [2,7,4], K = 181
  2. 输出:[4,5,5]
  3. 解释:274 + 181 = 455

示例 3:

  1. 输入:A = [2,1,5], K = 806
  2. 输出:[1,0,2,1]
  3. 解释:215 + 806 = 1021

示例 4:

  1. 输入:A = [9,9,9,9,9,9,9,9,9,9], K = 1
  2. 输出:[1,0,0,0,0,0,0,0,0,0,0]
  3. 解释:9999999999 + 1 = 10000000000

提示:

  1. 1 <= A.length <= 10000
  2. 0 <= A[i] <= 9
  3. 0 <= K <= 10000
  4. 如果 A.length > 1,那么 A[0] != 0

    import java.math.BigDecimal;
    import java.util.ArrayList;
    import java.util.Arrays;
    import java.util.List;

    public class Solution989 {

    1. public List<Integer> addToArrayForm(int[] A, int K) {
    2. List<Integer> out = new ArrayList<Integer>();
    3. String sa = Arrays.toString(A);
    4. sa = sa.replace("[", "");
    5. sa = sa.replace("]", "");
    6. sa = sa.replace(",", "");
    7. sa = sa.replace(" ", "");
    8. // System.out.println(sa);
    9. // long sum = Long.parseLong(sa) + K;
    10. BigDecimal bd1 = new BigDecimal(sa);
    11. BigDecimal bd2 = new BigDecimal(K
    12. );
    13. BigDecimal bd3 = bd1.add(bd2);
    14. // System.out.println(sum);
    15. String ssum = String.valueOf(bd3);
    16. // System.out.println(ssum);
    17. for (int i = 0; i < ssum.length(); i++) {
    18. out.add(Integer.parseInt(ssum.substring(i, i + 1)));
    19. }
    20. return out;
    21. }
    22. public static void main(String[] args) {
    23. Solution989 s = new Solution989();
    24. int[] A = { 9, 9, 9, 9, 9, 9, 9, 9, 9, 9 };
    25. int K = 1;
    26. System.out.println(s.addToArrayForm(A, K));
    27. }

    }

发表评论

表情:
评论列表 (有 0 条评论,129人围观)

还没有评论,来说两句吧...

相关阅读

    相关 整数加法

    问题描述:求两个不超过200为的非负整数的和 输入数据:输入有两行,每行是一个不超过200位的非负整数,没有多于的前导0. 输出要求:输出只一行,即相加后的结果。结果里不能

    相关 数组形式整数加法

    题目: 对于非负整数 X 而言,X 的数组形式是每位数字按从左到右的顺序形成的数组。例如,如果 X = 1231,那么其数组形式为 \[1,2,3,1\]。 给定非负整数