Given a number represented as an array of digits, plus one to the number.


大整数加法,基本编程题。

package leetcode;

import java.util.Arrays;

public class PlusOne {

	/**
	 * @param args
	 */
	public static void main(String[] args) {
		int[] digits = new int[10];
		Arrays.fill(digits, 8);
		
		int[] r = new PlusOne().plusOne(digits);
		for (int a : r) {
			System.out.print(a + ",");
		}

	}
	
	public int[] plusOne(int[] digits) {
		
		int more = 0;
		
		int pos = digits.length - 1;
		do {
			int r = digits[pos] + 1;
			if (r >= 10) {
				digits[pos] = r - 10;
				more = 1;
			} else {
				digits[pos] = r;
				more = 0;
			}
			
			pos--;
		} while (more == 1 && pos >= 0);
		
		if (more == 1) {
			int[] result = new int[digits.length + 1];
			result[0] = 1;
			System.arraycopy(digits, 0, result, 1, digits.length);
			return result;
		} else {
			return digits;
		}
        
    }

}


Logo

瓜分20万奖金 获得内推名额 丰厚实物奖励 易参与易上手

更多推荐