Trouvez un élément unique dans le tableau où tous les autres éléments se produisent 3 fois, utilise une logique booléenne

// Find the unique element in an array where all other elements occur three times
// Uses boolean logic
fn lone_number(a:&mut [i32] ) -> i32 {
    let mut ones = 0;
    let mut twos = 0;
    for item in a.iter(){
        ones = (ones ^ item) & !twos;
        twos = (twos ^ item) & !ones;
    } 
    ones
}

fn main() {
    let mut a: [i32; 10] = [ 1, 2, 3, 1, 2, 3, 5, 1, 2, 3 ];
    println!("Lone number is {}", lone_number(&mut a ));
}
Mackerel