用c++写代码已知斐波那契数列为:1,1,2,3,5,8,13,21……,其中后一项为前两项的和。 输入一系列整数N(N<=91),求斐波拉契数列第N项的结果。 输入 一行,若干个整数(个数<100,整数<=91)。 输出 输出m个整数(斐波拉契数列第N项的结果),由空格隔开。 样例输入 Copy 4 8 12 样例输出 Copy 3 21 144
时间: 2024-04-16 08:26:40 浏览: 176
以下用C++编写的解决方案:
```cpp
#include <iostream>
using namespace std;
long long fibonacci(int n) {
if (n <= 1) {
return n;
}
long long a = 1;
long long b = 1;
long long result = 0;
for (int i = 2; i <= n; i++) {
result = a + b;
a = b;
b = result;
}
return result;
}
int main() {
int n;
while (cin >> n) {
cout << fibonacci(n) << " ";
}
cout << endl;
return 0;
}
```
这段代码首先定义了一个名为`fibonacci`的函数,该函数接受一个整数`n`作为参数,并返回斐波那契数列的第`n`项。然后,在`main`函数中,使用循环读取输入的整数,并调用`fibonacci`函数计算并输出结果。
注意,由于斐波那契数列的结果可能非常大,所以使用了`long long`类型来存储结果,以避免溢出。
相关问题
C++实现斐波那契(Fibonacci)数列的第 n 项函数 fib(n),可以具体到项:如 n=8。 斐波那契数列为:1、1、2、3、5、8、13、21、......
以下是C语言实现斐波那契数列的第n项的函数fib(n)的代码:
```c
#include <stdio.h>
int fib(int n) {
if (n <= 0) {
return -1; // 输入错误,返回-1表示错误
} else if (n == 1 || n == 2) {
return 1; // 第1项和第2项都为1
} else {
int a = 1;
int b = 1;
int result;
for (int i = 3; i <= n; i++) {
result = a + b;
a = b;
b = result;
}
return result;
}
}
int main() {
int n = 8;
int result = fib(n);
printf("第%d项的斐波那契数为:%d\n", n, result);
return 0;
}
```
运行以上代码,将输出:第8项的斐波那契数为:21。
编程产生菲波拉契数列20项,例如:0 1 1 2 3 5 8 13 21 ……
要编写一个程序生成斐波那契数列的前20项,你可以使用循环结构结合递推的方式来实现。斐波那契数列的特点是每个数字等于前两个数字之和。以下是使用Python语言的一个简单示例:
```python
def fibonacci(n):
fib_sequence = [0, 1] # 初始化序列的前两项
while len(fib_sequence) < n:
fib_sequence.append(fib_sequence[-1] + fib_sequence[-2]) # 计算并添加下一个数
return fib_sequence[:n] # 返回指定长度的序列
# 输出前20项斐波那契数列
fibonacci_sequence = fibonacci(20)
for i in fibonacci_sequence:
print(i, end=" ")
```
当你运行这段代码,会得到斐波那契数列的前20项。每打印出一项后,都会自动换行,结果类似于:
```
0 1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597 2584 4181
阅读全文