c++求斐波那契前n项数和的代码
时间: 2024-03-02 14:53:45 浏览: 132
以下是C++求斐波那契数列前n项数和的代码,使用了循环实现,避免了递归带来的重复计算的问题。
```c++
#include <iostream>
using namespace std;
int main()
{
int n;
cout << "请输入n: ";
cin >> n;
int sum = 0, a = 0, b = 1, c;
for (int i = 1; i <= n; i++)
{
c = a + b;
sum += c;
a = b;
b = c;
}
cout << "斐波那契数列前" << n << "项的和为: " << sum << endl;
return 0;
}
```
在这个代码中,使用了三个变量a、b、c来存储斐波那契数列中的前三项,开始时a=0,b=1,c=a+b=1。然后使用循环计算第4项到第n项的值,并将它们累加到sum中。
需要注意的是,斐波那契数列的第一项为0,因此在循环中需要从第一项开始计算,而不是从第二项开始。
相关问题
c++求斐波那契前n项数和的代码 递归实现
以下是C++求斐波那契数列前n项数和的代码,使用了递归实现。虽然递归实现的代码比较简单,但是效率不高,因为它会进行很多重复的计算。
```c++
#include <iostream>
using namespace std;
int fibonacci(int n)
{
if (n == 1 || n == 2)
{
return 1;
}
else
{
return fibonacci(n - 1) + fibonacci(n - 2);
}
}
int fibonacci_sum(int n)
{
int sum = 0;
for (int i = 1; i <= n; i++)
{
sum += fibonacci(i);
}
return sum;
}
int main()
{
int n;
cout << "请输入n: ";
cin >> n;
int sum = fibonacci_sum(n);
cout << "斐波那契数列前" << n << "项的和为: " << sum << endl;
return 0;
}
```
在这个代码中,定义了两个函数,分别是fibonacci和fibonacci_sum。函数fibonacci用来计算斐波那契数列中的第n项的值,而函数fibonacci_sum则用来计算斐波那契数列前n项的和。
在函数fibonacci中,首先判断n是否为1或2,如果是,则返回1。否则,递归调用fibonacci函数计算第n-1项和第n-2项的值,然后将它们相加作为第n项的值返回。
在函数fibonacci_sum中,则使用循环来计算斐波那契数列前n项的和,每次调用fibonacci函数来计算第i项的值,然后将它们累加到sum中。
需要注意的是,递归实现的代码虽然简单,但是效率很低,因为它会进行很多重复的计算。因此,在实际应用中,应该尽量避免使用递归实现。
输入整数n,求斐波那契前n项的和的C++代码
以下是C代码:
#include <stdio.h>
int main() {
int n, i;
long long int a = 0, b = 1, c = 0, sum = 0;
printf("请输入整数n:");
scanf("%d", &n);
for (i = 1; i <= n; i++) {
c = a + b;
sum += c;
a = b;
b = c;
}
printf("斐波那契前%d项的和为%lld\n", n, sum);
return 0;
}
阅读全文