加一
描述
给定一个由整数组成的非空数组所表示的非负整数,在该数的基础上加一。
最高位数字存放在数组的首位, 数组中每个元素只存储单个数字,数组的长度不超过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;
}