1. 程式人生 > >【計蒜客】加一

【計蒜客】加一

題目描述

陣列記憶體放了一些個位數字,組成一個大數(從高位到低位),現在將這個數加 1,並輸出加一以後的結果。
例如:
A = [2,3,1,1,4]
則結果為 [2,3,1,1,5]。
A = [7,8,9]
則結果為 [7,9,0]。

輸入格式
第一行輸入一個正整數 n(1≤n≤100),接下來的一行,輸入用空格分隔的 n個 0到 9的非負整陣列成的陣列 A[n]。
輸出格式
輸出一行,n個用空格分隔的整數,表示加一後的新陣列。

樣例輸入

5 8 9 9 9 9

樣例輸出

9 0 0 0 0

AC程式碼

import java.util.Scanner;

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int len = sc.nextInt();
		int[] arr1 = new int[len];
		int[] arr2 = new int[len+1];
		for(int i = 0; i < len; i++){
			arr1[i] = sc.nextInt();
		}
		arr1[len-1] += 1;
		for(int i = len-1; i > 0; i--){
			if(arr1[i] == 10){
				arr1[i] = 0;
				arr1[i-1] += 1;
			}
		}
		int flag = 0;
		if(arr1[0] == 10){
			arr2[0] = 1;
			arr2[1] = 0;
			flag++;
			if(len+1>2){
				for(int i = arr1.length-1; i >= 2; i--){
					arr2[i] = arr1[i];
				}
			}
		}
		if(flag == 0){
			for(int i = 0; i < len; i++){
				System.out.print(arr1[i] + " ");
			}
		}else {
			for(int i = 0; i <= len; i++){
				System.out.print(arr2[i] + " ");
			}
		}
	}
}