利用指针设计求费波那契数列求前 20 项和的函数。
时间: 2024-05-11 09:16:41 浏览: 15
好的,以下是用指针设计的求前20项费波那契数列和的函数:
```c
#include <stdio.h>
long long fibonacciSum(int n);
int main()
{
int n = 20;
long long sum = fibonacciSum(n);
printf("The sum of first %d Fibonacci numbers is %lld.", n, sum);
return 0;
}
long long fibonacciSum(int n)
{
long long sum = 0;
long long a = 0, b = 1, c;
for (int i = 1; i <= n; i++)
{
c = a + b;
sum += c;
a = b;
b = c;
}
return sum;
}
```
这个函数接收一个整数 n 作为参数,返回前 n 项费波那契数列的和。在函数中,我们用三个变量 a、b、c 来维护数列中的数,用指针可以将程序精简化,如下:
```c
long long fibonacciSum(int n)
{
long long sum = 0;
long long *p1, *p2, a = 0, b = 1, c;
p1 = &a;
p2 = &b;
for (int i = 1; i <= n; i++)
{
c = *p1 + *p2;
sum += c;
*p1 = *p2;
*p2 = c;
}
return sum;
}
```
这样,我们就可以用指针 p1、p2 来访问变量 a、b,从而实现相同的功能。