#include <iostream>
#include <vector>
std::vector<int> incrementByOne(std::vector<int>& digits) {
int size = digits.size();
int carry = 1; // Start with the increment of 1
for (int i = size - 1; i >= 0; i--) {
digits[i] += carry;
if (digits[i] == 10) {
digits[i] = 0; // Reset to 0 if there's a carry
carry = 1; // Carry over to the next digit
} else {
carry = 0; // No carry, break early
break;
}
}
if (carry == 1) {
digits.insert(digits.begin(), 1); // Add a new digit at the front
}
return digits;
}
int main() {
std::vector<int> digits = {9, 9, 9};
incrementByOne(digits);
std::cout << "Result: ";
for (int digit : digits) {
std::cout << digit << " ";
}
std::cout << std::endl;
}
/*
run:
Result: 1 0 0 0
*/