一个int数组的尾数加一。可能题目的意义在于可以引申到大数加法吧,否则就题目本身而言没什么意义。唯一要考虑的当然就是进位了。
代码如下:
int *plusOne(int *digits, int len, int *newLen)
{
int *result = (int *)malloc(sizeof(int) * len);
*newLen = len;
memset(result, 0, sizeof(int) * len);
memcpy(result, digits, sizeof(int) * len);
int i = 0;
for (i = len - 1; i >= 0; i--) {
if (digits[i] != 9) {
result[i] = ++digits[i];
return result;
}
else
result[i] = 0;
}
result[0] = 1;
*newLen += 1;
for(int j = 1; j < *newLen; j++)
result[j] = 0;
return result;
}