什么是斐波那契数列?

斐波那契数列就是前两项之和会等于第三项。

斐波那契数列通常以一为起始 :1 1 2 3 5 8 13 21 34 55 89 144 233 377 610 987 1597……

正如我所说的前两项之和会等于第三项以此类推,那么我们要以什么方式来进行代码编写呢!方法如下:

先赞后看知识牢于心哦!!! 

目录

计算思路

1.用递归的方式求出斐波那契数列

2.使用循环计算斐波那契数列

结尾


计算思路

首先你要知道你要求的项是多少,例如:第N项,我们知道要求第N项就要求N的前两项之和才会等于N。所以(n-1)+(n-2)=n,N-1就是N的前一项,N-2就是N的前两项。那就可以知道N是怎么来的,那(n-1)中的N又是怎么来的呢!?也是(n-1-1)+(n-2-1)=(n-1)因此我们要以此类推一直找到第一项和第二项之和才会得到第三项。所以你要一直找到1 1才会得2 ,1 2才会得3。

设定一个函数  fbnq 

判断第一项和第二项是否为1,为1则返回1.不为1则继续找1.

用return 返回找到的斐波那契数再用循环一次打印出来

再循环中设一个sum来计算返回前N项和的值,最后打印输出

1.用递归的方式求出斐波那契数列

运用递归的思想,求斐波那契数列前n项之和(n作为函数参数传递)。

①斐波那契数列的前六项:1,1,2,3,5,8

②斐波那契数列的前六项之和为:20

(规律:斐波那契数列第一项和第二项都为1,从第三项开始之后的每一项都等于其前两项之和)

#include<stdio.h>
int fbnq(int n)
{if (n == 1 || n == 2){return 1;}else{return fbnq(n - 1) + fbnq(n - 2);}
}
int main()
{int n;int sum = 0;scanf("%d", &n);printf("斐波那契数列:");for (int i = 1; i <= n; i++){printf("%d ", fbnq(i));sum += fbnq(i);}printf("\nsum=%d\n", sum);return 0;
}

缺点:递归的运算效率太慢,输入一个较大的值的时候需要等待,所以一般情况下。题目不要求递归的使用就用循环来解决,下面是使用循环的方法:

值太大的话两种方法都会溢出,但是循环可以大大加快运算的效率

同时输入100项就可以知道差距啦!

2.使用循环计算斐波那契数列

#include<stdio.h>
int fbnq(int n);//使用声明
int main()
{int n;int num = 0;int sum = 0;scanf("%d", &n);num = fbnq(n);printf("斐波那契数列:");for (int i = 1; i <=n; i++){printf("%d ", fbnq(i));sum += fbnq(i);//计算N前项之和}printf("\nsum=%d\n", sum);return 0;
}
int fbnq(int n)
{if (n == 1 || n == 2){return 1;}int n1 = 1;int n2 = 1;int num = 0;for (int i = 3; i <= n; i++)//第一项和第二项都是1,所以i要从第三项开始{num = n1 + n2;n2 = n1;n1=num;}return num;
}

结尾

今天的分享就到这里了,请点下你们手中的赞吧!你们的支持对我有这重大的认可,后面才会更加有动力分享哦!

谢谢你的观赏!

我是Try_harder,正在磕磕绊绊中成长~~

每天一练——斐波那契数列前N项之和相关推荐

  1. 求斐波那契数列前n项的值

    Description 输入n,求斐波那契数列前n项的值.斐波那契数列规律如下:1, 1, 2, 3, 5, 8, 13,21, 34,55-,从第三项开始,每一项都是前面两项的和. Input 输入 ...

  2. Java代码实现用for循环打印斐波那契数列前20项

    /*** 需求:编写代码按照要求实现以下的功能 * 用for循环打印 1 1 2 3 5 8 13 ...(斐波那契数列前20项)* 要点提取:斐波那契数列规律:第三个数起,是前两个数之和* 思路分析 ...

  3. 输出斐波拉契数列前30项,每行5个

    """ 功能:输出斐波拉契数列前30项,每行5个 作者:文雅兰 日期:2021年12月2日 """ #生成斐波拉契数列前30项 fib = ...

  4. 斐波拉契数列前n项和 斐波拉契数列第n项

    此篇题解不为别的,纯属纪念,纪念一个已经且也许永远淡出我生活的人... 记不清是大二还是大三了,只记得在教四304实验室,你教我如何用矩阵快速幂来求解斐波拉契数列的第n项,然后考我怎么用类似的方法计算 ...

  5. 用函数求斐波那契数列前n项和

    #include <stdio.h> long fibonacci(int n) {     long num;     if (n == 1 || n == 2) {         n ...

  6. Python:斐波那契数列前n项,前n项和

    def fibonacci(n):a, b =1, 1for i in range(n):yield aa, b = b, a+bnum = int(input("请输入数字 n = &qu ...

  7. 斐波那契数列前20项

    //斐波那契数列前20项0,1,1,3,5,8,13......int main(){int u=0,v=1,w,k=3;printf("%5d\n%5d\n",u,v);do{w ...

  8. linux求斐波那契数列前10项,linux求斐波那契数列的前10项以及总和.

    C语言的函数问题求斐波那契前四十个数,斐波那契数列指的是这样一个数列:0.1.1.2.3.5.8.13.21.--在数学 />#include//the nest function used t ...

  9. c语言斐波那契数列前20项和,,c语言利用数组求斐波那契数列的前20项

    推荐回答 一.斐波那契数列指的是这样一个数列1,1,2,3,5,8,13,21,34,55,89,144,233,377,610,987,1597,2584,4181,6765,10946,17711 ...

最新文章

  1. 计算机网络原理超详解说
  2. HDU 4406 最大费用最大流
  3. Nginx压缩输出配置
  4. [云炬创业基础笔记]第一章创业环境测试12
  5. 测试人员报BUG的正确姿势
  6. android 模仿uc标签页,模仿UCweb菜单 - 白羽雕弓 - 博客园
  7. 14寸笔记本电脑_纯小白预算5000到6000有什么好的笔记本电脑推荐吗?
  8. php参数传递及数据库连接方法
  9. 平安银行java面试_平安银行JAVA笔试题一.doc
  10. UML与Rational Rose
  11. 网络爬虫案例——前程无忧网java岗位
  12. ovftool导出虚拟机报错处理过程!
  13. mysql 查询近三个月数据
  14. .NET Core、Xamarin、.NET Standard和.NET Framework四者之间的区别
  15. 【动态规划】入门练习题浅总
  16. 成为一名CV(计算机视觉)工程师,你需要具备哪些能力?
  17. 描述对未来计算机的畅想用英语作文,畅想未来人工智能的发展状况英语作文 关于畅想未来人工智能的发展状况的英语作文...
  18. 计算机发展的几个重要事件,15件在计算机发展史中具有里程碑意义的事件
  19. linux解压gz.gz文件,linux解压tar.gz并重命名_linux解压tar.gz文件
  20. linux日志文件详解

热门文章

  1. 计算机网络验证型实验
  2. Linux下网络管理
  3. 用soa搭建统一的电子政务平台
  4. linux c编程文件枷锁
  5. 伯南克回忆2008:金融危机如何演变为经济危机?------From凤凰财经20160430
  6. Mysql面试之索引
  7. 设计原汁原味的 Windows Phone 应用
  8. 【jQuery】 # jQuery选择器
  9. 计算机科学与技术专业考数媒,数字媒体技术专业考研院校排名
  10. Defaulting to no-operation (NOP) logger implementation