2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

(DAY5) 俺と学ぶRust言語~フィボナッチ数列~

Posted at

今日の内容

  • フィボナッチ数列を表示する
  • 変数定義
  • イミュータブル
  • ミュータブル

はじめに

前回はfor文について学びました。今回は、Rustでの変数定義について学びます。また、そのためにフィボナッチ数列を表示するプログラムを作ります。

フィボナッチ?

フィボナッチ数列とは、隣り合う二つの数字が、次の数字になるという次のような数列です。

1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233,...

今日はこの数列を表示するプログラムを作ります。

変数定義

フィボナッチ数列を表示するプログラムを作るには、変数を二つ用意して、それらを足して使いまわしていきます。
そのために、まずは変数定義について学びます。
Rustでは次のように変数を定義します。

let 変数名 = ;

ここで注意するべきポイントは、プログラム内で変数を変えることは出来ないということです。Rustでは、デフォルトで変数が 不変(イミュータブル) なのです。
Rustでは「値を変数に束縛する」という表現をしますが、これは、値に名前を付けて使えるようにするという意味です。
Rustで変数を 可変(ミュータブル) にするには、以下のように、letの後にmut(ミュータブル)を付けます。

let mut 変数名 = ;

変数なのになぜデフォルトで変更できないのか、という疑問は当然のものですが、開発者の「安全性第一」という意思の表れと考えれば納得いきますね。

フィボナッチ数列を表示しよう

以下はRustで31要素までフィボナッチ数列を表示するプログラムです。

fn main(){
    let mut a=1;
    let mut b=1;
    println!("{}", a);
    println!("{}", b);
    for _ in 1..30{
        println!("{}", a+b);
        let tmp = a;
        a = b;
        b = tmp + b;
    }
}
/******** 出力結果 *******
1
1
2
3
5
8
13
21
34
55
89
144
233
377
610
987
1597
2584
4181
6765
10946
17711
28657
46368
75025
121393
196418
317811
514229
832040
1346269
*************************/

変数a,bは可変になるため、mut(ミュータブル)で定義しています。
変数tmpはa,bがそれぞれa->b(次の要素に移る),b->a+b(新しい要素は、その前の二つの要素の和)となるので、ここでaを一時的に保存するために定義しています。変数名は「temporary(一時的な)」からきています。

おわりに

おつかれさまでした。今回は、100DaysOfCode 五日目として、フィボナッチ数列を通して変数定義について学びました。次回は変数の「型」について学んでいきます。
ご精読、ありがとうございました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?