求斐波那契数列,1.1.2.3.5.8……的前20项及前二十项的和的C语言代码
时间: 2024-05-30 09:16:37 浏览: 15
#include <stdio.h>
int main() {
int n = 20; // 前20项
int fib[n]; // 存储斐波那契数列
int sum = 0; // 前20项的和
fib[0] = 1;
fib[1] = 1;
printf("%d %d ", fib[0], fib[1]);
for (int i = 2; i < n; i++) {
fib[i] = fib[i-1] + fib[i-2];
printf("%d ", fib[i]);
}
for (int i = 0; i < n; i++) {
sum += fib[i];
}
printf("\n前20项的和为:%d\n", sum);
return 0;
}
相关问题
求斐波那契数列,1.1.2.3.5.8……的前20项及前二十项的和
斐波那契数列的递推公式为:$F_1=1,F_2=1,F_n=F_{n-1}+F_{n-2}(n\geq3)$
前20项分别为:
1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765
前二十项的和为: 17710
有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?程序分析:兔子的规律为数列 1.1.2.3.5.8.13.21....
这是一个典型的斐波那契数列问题,可以使用递归或循环来解决。
方法一:使用递归
```
def fibonacci(n):
if n <= 2:
return 1
else:
return fibonacci(n-1) + fibonacci(n-2)
num = int(input("请输入月份:"))
print("第%d个月共有%d对兔子" % (num, fibonacci(num*2)))
```
方法二:使用循环
```
num = int(input("请输入月份:"))
a, b = 0, 1
for i in range(num*2):
a, b = b, a+b
if i % 2 == 0:
print("第%d个月共有%d对兔子" % ((i+2)//2, b))
```
注意,当月份较大时,递归方法可能会出现栈溢出的问题,因此推荐使用循环方法。
相关推荐
![docx](https://img-home.csdnimg.cn/images/20210720083331.png)
![c](https://img-home.csdnimg.cn/images/20210720083646.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![-](https://csdnimg.cn/download_wenku/file_type_column_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)