2019-10-17 10:11:24 +02:00
|
|
|
// This program displays the fibonacci sequence
|
2021-03-17 01:43:17 +01:00
|
|
|
// import os
|
2019-10-17 10:11:24 +02:00
|
|
|
|
|
|
|
fn main() {
|
|
|
|
// Check for user input
|
2021-04-20 16:16:35 +02:00
|
|
|
// if os.args.len != 2 {
|
|
|
|
// println('usage: fibonacci [rank]')
|
2019-10-17 10:11:24 +02:00
|
|
|
|
2021-04-20 16:16:35 +02:00
|
|
|
// Exit
|
|
|
|
// return
|
|
|
|
// }
|
2021-02-23 18:43:44 +01:00
|
|
|
|
2019-10-17 10:11:24 +02:00
|
|
|
// Parse first argument and cast it to int
|
2021-04-20 16:16:35 +02:00
|
|
|
// stop := os.args[1].int()
|
2021-03-17 01:43:17 +01:00
|
|
|
stop := 23
|
2019-10-30 12:54:38 +01:00
|
|
|
// Can only calculate correctly until rank 92
|
|
|
|
if stop > 92 {
|
|
|
|
println('rank must be 92 or less')
|
|
|
|
return
|
|
|
|
}
|
|
|
|
|
2019-10-17 10:11:24 +02:00
|
|
|
// Three consecutive terms of the sequence
|
2021-03-17 01:43:17 +01:00
|
|
|
mut a := 0
|
|
|
|
mut b := 0
|
|
|
|
mut c := 1
|
2021-04-20 16:16:35 +02:00
|
|
|
println(a + c + c)
|
2021-02-23 18:43:44 +01:00
|
|
|
for _ in 0 .. stop {
|
2019-10-17 10:11:24 +02:00
|
|
|
// Set a and b to the next term
|
|
|
|
a = b
|
|
|
|
b = c
|
|
|
|
// Compute the new term
|
|
|
|
c = a + b
|
|
|
|
|
|
|
|
// Print the new term
|
|
|
|
println(c)
|
|
|
|
}
|
|
|
|
}
|