题目
整数的 数组形式 num 是按照从左到右的顺序表示其数字的数组。
例如,对于 num = 1321 ,数组形式是 [1,3,2,1] 。
给定 num ,整数的 数组形式 ,和整数 k ,返回 整数 num + k 的 数组形式 。
示例 1:
输入:num = [1,2,0,0], k = 34
输出:[1,2,3,4]
解释:1200 + 34 = 1234
分析
可以从尾开始往前遍历数组,需要处理好每位的加法,超过10以及不超过10的情况,超过10会有进位位
import java.util.List;
import java.util.ArrayList;
import java.util.Collections;public class dddtoArrayFormofInteger {public static void main(String[] args) {int[] arr = {1,2,0,0};List<Integer> brr = getPlus(arr,34);for(int i = 0;i<brr.size();i++) {System.out.println(brr.get(i));}}public static List<Integer> getPlus(int[] arr,int k) {int n = arr.length - 1;int count = 0;int data = 0;List<Integer> lis = new ArrayList();for(int i = n;i>=0;i--) {if(i == n) {data = arr[i] + k;} else {data = arr[i] + count;}if(data > 10) {lis.add(data % 10);count = data / 10;} else {lis.add(data);count = 0;}data = 0;}while(count > 0) {lis.add(count % 10);count = count / 10;}Collections.reverse(lis);return lis;}
}