How to increment an integer represented as an integer vector of digits by one in Rust

1 Answer

0 votes
fn increment_by_one(digits: &mut Vec<u8>) {
    let mut carry = 1;
    for i in (0..digits.len()).rev() {
        digits[i] += carry;
        if digits[i] == 10 {
            digits[i] = 0;
            carry = 1;
        } else {
            carry = 0;
            break;
        }
    }
    if carry == 1 {
        digits.insert(0, 1);
    }
}

fn main() {
    let mut digits = vec![9, 9, 9];
    
    increment_by_one(&mut digits);
    
    print!("Result: ");
    for digit in digits {
        print!("{} ", digit);
    }
}

 
 
/*
run:
   
Result: 1 0 0 0 
   
*/
 

 



answered Jul 2 by avibootz
...