用rust语言生成 n 阶斐波那契数列
时间: 2023-10-23 21:13:49 浏览: 82
好的,让我为您解答。下面是 Rust 语言生成 n 阶斐波那契数列的代码:
```
fn main() {
let n = 10; // n 阶
let mut fib = vec![0; n];
// 初始值
for i in 0..n {
if i < 2 {
fib[i] = 1;
} else {
fib[i] = 0;
for j in (i - n + 1)..i {
fib[i] += fib[j];
}
}
}
// 输出结果
for i in 0..n {
println!("{}阶斐波那契数列的第{}项为: {}", n, i + 1, fib[i]);
}
}
```
这段代码生成 n 阶斐波那契数列,输出结果为每一项的值。其中,n 代表阶数,可以根据需求进行修改。
相关问题
rust实现的非波那契数列
非波那契数列是指一个数列,其中数列中的每个数字是上一个数字与它前面的数字的和,但不是严格的斐波那契数列。在 Rust 中实现非波那契数列可以使用迭代器,通过迭代器来生成连续的数字。
代码如下:
```
struct Fibonacci {
curr: u64,
next: u64,
}
impl Iterator for Fibonacci {
type Item = u64;
fn next(&mut self) -> Option<u64> {
let new_next = self.curr + self.next;
self.curr = self.next;
self.next = new_next;
Some(self.curr)
}
}
fn fibonacci() -> Fibonacci {
Fibonacci { curr: 1, next: 1 }
}
fn main() {
let mut sequence = fibonacci();
for i in 0..10 {
println!("{}: {}", i, sequence.next().unwrap());
}
}
```
这个代码实现了一个非波那契数列的迭代器,它生成了前10个数字。
用rust语言生成n阶斐波那契数列
可以使用以下代码来生成n阶斐波那契数列:
```
fn fib(n: u32) -> Vec<u32> {
let mut vec = vec![0; n as usize];
vec[0] = 1;
vec[1] = 1;
for i in 2..n as usize {
for j in 1..(i + 1) as usize {
vec[i] += vec[i - j];
}
}
vec
}
fn main() {
let n = 10;
let fib_seq = fib(n);
println!("{}-order Fibonacci sequence: {:?}", n, fib_seq);
}
```
在这段代码中,我们使用了Rust语言来定义了一个名为fib的函数,该函数接收一个参数n,表示需要生成的斐波那契数列的阶数。
我们首先初始化了一个长度为n的向量,其中每个元素都为0。然后我们将第一项和第二项设置为1,这是斐波那契数列的特殊性质。
接下来,我们使用两个for循环来计算斐波那契数列的每一项。在内部循环中,我们将向量的当前项加上所有前面项的和,从而生成斐波那契数列。
最后,在main函数中,我们调用fib函数并输出结果。
阅读全文