"Puzzles mathématiques qui entraînent davantage le cerveau du programme" _Q02 (code: Ruby) -> Rust

Je pensais que la réécriture "puzzles mathématiques qui entraînent davantage le cerveau du programmeur" avec Rust pourrait être juste pour éviter le flou.

Rallye de timbres Q02 sur la ligne Yamate

Au moment de la publication de ce livre (2018), il y a 29 stations. En 2020, le nombre de stations est passé à 30 stations.

Ruby

q02.rb


N = 29

a, b = 1, 17

n = (a - b).abs

puts (1 << (n - 1)) + (1 << (N - n - 1)) - 1

Rust

main.rs


fn main() {
    println!("{}", q02(29, 1, 17));
}

pub fn q02(num_of_stations: i64, entraining_point: i64, exit_station: i64) -> i64 {
    let passing_stations = (entraining_point - exit_station).abs();

    return (1 << (passing_stations - 1)) + (1 << (num_of_stations - passing_stations - 1)) - 1;
}

Vous pouvez décaler les bits tels quels sans aucun problème.

À titre d'essai, à 29 stations, 36863, mais à 30 stations (`q02 (30,1,17) '), la réponse était 40959.

Recommended Posts

"Puzzles mathématiques qui entraînent davantage le cerveau du programme" _Q39 (code: Ruby) -> Rust
"Puzzles mathématiques qui entraînent davantage le cerveau du programme" _Q02 (code: Ruby) -> Rust
"Des énigmes mathématiques qui entraînent davantage le cerveau du programme" _Q17 (code: Ruby) -> Rust
"Des énigmes mathématiques qui entraînent davantage le cerveau du programme" _Q01 (code: Ruby) -> Rust
"Puzzles mathématiques qui entraînent davantage le cerveau du programme" _pp.018-020 (code: Ruby) -> Rust
"Puzzles mathématiques qui entraînent davantage le cerveau du programme" _Q61 (code: Ruby) -> Rust (& SQL)
"Des énigmes mathématiques qui entraînent davantage le cerveau du programme" _Q41 (code: Ruby) -> Rust
"Puzzles mathématiques qui entraînent davantage le cerveau du programme" _Q18 (code: Ruby) -> Rust
"Puzzle mathématique pour entraîner le cerveau du programme plus" _Q40 (code: Ruby) -> Rust inachevé
Une tentative de "puzzles mathématiques qui entraînent davantage le cerveau de Rust".
Les langues qui ont influencé Rust