Rust 練習問題
Fibonacci Sequence in Rust
Build the Fibonacci numbers with a loop, a tuple swap and a vector.
学べること
- A loop with two variables
- (a, b) = (b, a + b)
- Why u64
The first numbers
00
11
12
23
34
55
Each number is the sum of the two before
Each Fibonacci number is the sum of the two before it, starting from 0 and 1. Build the first numbers of the sequence in a vector.
a and b hold two neighbouring numbers. (a, b) = (b, a + b) moves both one step forward in a single assignment. u64 is used because Fibonacci numbers grow quickly: the 50th no longer fits in 32 bits.
重要なポイント
- Start from 0 and 1.
- One tuple assignment moves both values.
- u64 holds much larger numbers than u32.
実行できる Rust のサンプル
Rust
main.rs
fn fibonacci(count: usize) -> Vec<u64> {
let mut sequence = Vec::with_capacity(count);
let (mut a, mut b) = (0u64, 1u64);
for _ in 0..count {
sequence.push(a);
(a, b) = (b, a + b);
}
sequence
}
fn main() {
println!("{:?}", fibonacci(10));
println!("50th: {}", fibonacci(50)[49]);
}
[0, 1, 1, 2, 3, 5, 8, 13, 21, 34]
50th: 7778742049練習
サンプルをオンラインコンパイラーで開き、値を変えたり行を追加したりして、実行する前に出力を予想してみましょう。次に、わざとコードを壊してコンパイラーのメッセージを読んでみてください。
このレッスンを終えましたか?
学習済みにすると進み具合を記録できます。
進み具合はこのブラウザーに保存されています ログインすると、どのデバイスでも引き継げます。
チャレンジで練習する
このレッスンの内容を使って実際の問題を解きましょう。各チャレンジはブラウザで動き、すぐにテストされ、AI のレビューも受けられます。
すべてのチャレンジ