fn convert_vector_of_digits_to_int(digits: &[u32]) -> u32 {
let mut n = 0;
for &digit in digits {
n = n * 10 + digit;
}
n
}
fn convert_int_to_vector_of_digits(digits: &mut Vec<u32>, mut n: u32) {
let len = digits.len();
let mut i = len - 1;
while n > 0 {
digits[i] = n % 10; // Extract last digit
n /= 10; // Remove the last digit
if i > 0 { // Prevent out-of-bound access
i -= 1;
}
}
}
fn main() {
// Initial vector of digits
let mut v = vec![9, 4, 6, 9];
// Convert vector of digits to an integer
let mut n = convert_vector_of_digits_to_int(&v);
// Increment the integer
n += 1;
// Convert the incremented integer back to an vector of digits
convert_int_to_vector_of_digits(&mut v, n);
// Print the results
println!("n = {}", n);
println!("{:?}", v);
}
/*
run:
n = 9470
[9, 4, 7, 0]
*/