-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathplus-one.c
More file actions
35 lines (31 loc) · 723 Bytes
/
Copy pathplus-one.c
File metadata and controls
35 lines (31 loc) · 723 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
#include <stdio.h>
#include <stdlib.h>
int* bigNumber(int n) {
int* result = malloc(sizeof(int)*(n+1));
result[0] = 1;
for (int i = 1; i <= n; i++) {
result[i] = 0;
}
return result;
}
int* plusOne(int* digits, int digitsSize, int* returnSize) {
digits[digitsSize-1]++;
for (int i = digitsSize-1; i>=0&&digits[i] == 10; i--) {
digits[i] = 0;
if(i>0){
digits[i-1]++;
}
}
if (digits[0] == 0) {
*returnSize = digitsSize+1;
return bigNumber(digitsSize);
}
*returnSize = digitsSize;
return digits;
}
int main() {
int digits[] = {1,9,9,9,9};
int size;
int * num = plusOne(digits, 5, &size);
return 0;
}