题目:有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13…求出这个数列的前20项之和。
程序分析:请抓住分子与分母的变化规律。
#include <stdio.h>
int main()
{
int i, t;
float sum = 0;
float a = 2, b = 1;
for (i = 1; i <= 20; i++)
{
sum = sum + a / b;
t = a;
a = a + b;
b = t;
}
printf("%9.6f\n", sum);
}
////由规律可以看出,这其实是一个斐波那契数列的除法,我们可以直接用递归写一个斐波那契的通项。然后在求和。
//int Fibonacci(int a, int b, int n)
//{
// if (n < 0)
// {
// return 0;
// }
// else if (n == 1)
// {
// return 1;
// }
// else if (n == 2)
// {
// return b;
// }
// else
// {
// return Fibonacci(b, a + b, n - 1);
// }
//}
//
//int main(void)
//{
// float sum = 0;
// int i;
// for (i = 2; i < 22; i++)
// {
// float son = Fibonacci(1, 1, i + 1);
// float mother = Fibonacci(1, 1, i);
// // 这里不能直接用Fibonacci(1,1,i+1)/Fibonacci(1,1,i),不定义类型会返回一个整除的值,导致结果有误,这是个坑。
// sum = sum + son / mother;
// printf("%d/%d\n", Fibonacci(1, 1, i + 1), Fibonacci(1, 1, i));
// }
// printf("求和得 %9.6f", sum);
// return 0;
//}
该博客探讨了一种分数序列,其规律类似于斐波那契数列。通过分析序列中分子与分母的关系,博主提供了两种不同的程序实现来计算序列的前20项之和,一种采用循环,另一种使用递归。博客强调了在递归求解时需要注意的整除问题,以避免结果错误。最后,博主展示了计算出的和,并提醒读者理解这种序列与斐波那契数列的联系。
40万+

被折叠的 条评论
为什么被折叠?



