Fibonacci
Fibonacci sequence
一个非常著名的数列。
在数学上,它由0和1开始,之后的每一项都是前两项之和。 定义如下: 0 1 1 2 3 5 8 13 21 34 55 ...
> F(0)=0
> F(1)=1
> F(2)=1
> F(3)=F(3-1)+F(3-2)=1+1
> ...
> F(n)=F(n-1)+F(n-2)
c语言怎么计算前n项数列的和?
前两项是0 ,1。
递归法
/**
* 斐波那契数列
* 求出每一项
* (递归法)
* @param n
* @return
*/
int fun(int n) {
int an;
if (0 == n)
an = 0;
else if (1 == n)
an = 1;
else
an = fun(n - 1) + fun(n - 2);
return an;
}
for (int i = 0; i < 20; ++i) {
printf("%d ", fun(i));
if (0 == i % 10)
printf("\n");
Fibonacci Sequence变形:1/2+2/3+3/5+5/8+...+... 前n项(如:n=20)
sum += (float) x / y;
float sum = 0.0;
int x = 1, y = 2;
for (int i = 1; i <= 20; ++i) {
int next = x + y;
sum += (float) x / y;
x = y;
y = next;
}
printf("sum=%.3f\n", sum);