加一

 

描述

给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。

最高位数字存放在数组的首位, 数组中每个元素只存储单个数字,数组的长度不超过1000

你可以假设除了整数 0 之外,这个整数不会以零开头。

例如数组{1,2,3,4,5},表示12345,加一的结果是12346,你只需要输出12346即可。

 

输入

输入有两行,如下:

第1行:一个整数n,表示数组长度

第2行:具体的n个数位,均为0~9的整数

 

输出

加一后的结果

 

输入样例 1 

3
1 1 9

输出样例 1

120

 

来源

XMU

 

#include <stdio.h>

int main()
{
    int len;
    int number[1005] = { 0 };

    scanf("%d", &len);
    for (int i = 1; i <= len; ++i)
        scanf("%d", &number[i]);

    int reminder = 0, carry = 1;
    for (int i = len; i >= 1; --i)
    {
        reminder = (number[i] + carry) % 10;
        carry = (number[i] + carry) / 10;
        number[i] = reminder;
    }
    if (carry > 0)
    {
        number[0] = carry;
        printf("%d", number[0]);
    }

    for (int i = 1; i <= len; ++i)
        printf("%d", number[i]);

    return 0;
}