Write a program to print the fibonacci series sum upto a particular no. using recursion.

#include <iostream>

int sum = 0;

void Fib(int cnt, int last_num, int cur_num)
{
	if (cnt == 0)
		return;

	sum += cur_num;
	std::cout << cur_num << " ";
	Fib(--cnt, cur_num, last_num + cur_num);
}

int main()
{
	Fib(1, 0, 1);
	std::cout << " = " << sum;

	return 0;
}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
可以使用以下代码来打印斐波那契数列: ```python def fibonacci(n): a, b = 0, 1 for i in range(n): print(a) a, b = b, a + b ``` 在这个函数中,我们使用两个变量 `a` 和 `b` 来迭代计算斐波那契数列。我们首先初始化 `a` 和 `b` 分别为 0 和 1,然后使用一个 for 循环来迭代计算斐波那契数列的前 n 个数。 对于每个循环迭代,我们打印当前的 `a` 值,并将 `a` 的值更新为 `b`,将 `b` 的值更新为当前的 `a+b`。这样我们就可以一次迭代地计算斐波那契数列的每个值。 如果需要返回斐波那契数列,可以将打印语句替换为添加到一个列表或者生成器中即可。 优化说明: 以上代码是一个简单且有效的方法来计算斐波那契数列,但是如果需要计算大量的数列,会比较耗时。因此可以使用以下优化方法: 1. 使用矩阵乘法来加速斐波那契数列的计算。这种方法可以将时间复杂度从 O(n) 降低到 O(logn)。但是这种方法需要使用 numpy 库来进行矩阵运算。 2. 使用生成器来延迟计算斐波那契数列。这种方法可以在需要时生成数列的下一个值,而不是一次性计算整个数列。 以下是优化后的代码: 使用矩阵乘法计算斐波那契数列: ```python import numpy as np def fibonacci(n): if n == 0: return 0 elif n == 1: return 1 else: matrix = np.array([[1, 1], [1, 0]]) result = matrix_power(matrix, n-1) return result def matrix_power(matrix, power): result = np.eye(2) while power > 0: if power % 2 == 1: result = np.dot(result, matrix) matrix = np.dot(matrix, matrix) power //= 2 return result ``` 使用生成器计算斐波那契数列: ```python def fibonacci(): a, b = 0, 1 while True: yield a a, b = b, a + b ``` 这个函数返回一个生成器对象,每次调用 `next()` 方法时会生成下一个斐波那契数列的值。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值