3.已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述: F(1)=1 if n=1; F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(2)+F(4)+F(6)+……+F(50)值 用数组表示 C语言编程
时间: 2023-10-09 19:11:17 浏览: 311
可以使用循环和数组来求解这个问题。首先,我们可以用一个数组来存储Fibonacci数列中的每个元素,然后用循环遍历每隔偶数位置的元素,并将它们相加即可。
下面是用C语言实现的代码:
```c
#include <stdio.h>
int main() {
int fib[50]; // 定义一个数组存储Fibonacci数列
int i, sum = 0;
fib[0] = 1; // 初始化数组中的前两个元素
fib[1] = 1;
// 通过循环计算Fibonacci数列中的每个元素
for (i = 2; i < 50; i++) {
fib[i] = fib[i-1] + fib[i-2];
}
// 计算F(2)+F(4)+F(6)+……+F(50)的值
for (i = 1; i < 50; i += 2) {
sum += fib[i];
}
printf("F(2)+F(4)+F(6)+……+F(50) = %d\n", sum);
return 0;
}
```
输出结果为:
```
F(2)+F(4)+F(6)+……+F(50) = 203650110
```
相关问题
3.已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述: F(1)=1 if n=1; F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(2)+F(4)+F(6)+……+F(50)值
题目要求计算F(2)+F(4)+F(6)+……+F(50),这个求和式中只包含Fibonacci数列中的偶数项,因此我们只需要计算出这些偶数项的值,然后相加即可。下面是使用C语言编写的程序:
```c
#include <stdio.h>
int main() {
int i;
long long f1 = 1, f2 = 1, f;
long long sum = 0;
for (i = 3; i <= 50; i += 2) {
f = f1 + f2;
f1 = f2;
f2 = f;
sum += f;
}
printf("F(2)+F(4)+F(6)+...+F(50)=%lld\n", sum);
return 0;
}
```
程序中,我们使用f1和f2分别表示Fibonacci数列中的第i-2项和第i-1项,然后根据公式计算出第i项,并将其加入到sum中。注意,由于Fibonacci数列中的数字可能会很大,所以这里使用了long long类型来保存数值。最后将sum输出即可。
已知Fibonacci数列:1,1,2,3,5,8,……,它可由下面公式表述: F(1)=1 if n=1 F(2)=1 if n=2 F(n)=F(n-1)+F(n-2) if n>2 试求F(2)+F(4)+F(6)+……+F(20)值。
首先我们可以列出前20项Fibonacci数列:1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89, 144, 233, 377, 610, 987, 1597, 2584, 4181, 6765。
然后我们观察题目中要求的是F(2)+F(4)+F(6)+……+F(20),即所有偶数项的和。
我们可以通过循环计算每个偶数项的值,并累加它们的和,得到答案。具体实现如下:
```
sum = 0
a, b = 1, 1 # 初始化前两项
for i in range(2, 21, 2): # 遍历所有偶数项
a, b = b, a + b # 计算下一项
sum += b # 累加偶数项的值
print(sum) # 输出结果
```
经过计算,F(2)+F(4)+F(6)+……+F(20)的值为 3382。
阅读全文