1
0
mirror of https://github.com/vlang/v.git synced 2023-08-10 21:13:21 +03:00
v/examples/fibonacci.v

37 lines
622 B
V
Raw Normal View History

2019-10-17 11:11:24 +03:00
// This program displays the fibonacci sequence
2021-12-08 11:09:10 +03:00
import os
2019-10-17 11:11:24 +03:00
fn main() {
// Check for user input
2021-12-08 11:09:10 +03:00
if os.args.len != 2 {
println('usage: fibonacci [rank]')
2019-10-17 11:11:24 +03:00
2021-12-08 11:09:10 +03:00
return
}
2021-02-23 20:43:44 +03:00
2019-10-17 11:11:24 +03:00
// Parse first argument and cast it to int
2021-12-08 11:09:10 +03:00
stop := os.args[1].int()
// Can only calculate correctly until rank 92
if stop > 92 {
println('rank must be 92 or less')
return
}
2019-10-17 11:11:24 +03:00
// Three consecutive terms of the sequence
2021-12-08 11:09:10 +03:00
mut a := i64(0)
mut b := i64(0)
mut c := i64(1)
println(a + c + c)
2021-02-23 20:43:44 +03:00
for _ in 0 .. stop {
2019-10-17 11:11:24 +03: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)
}
}