• 【趣学算法】Day1 算法简介+斐波那契数列


    14天阅读挑战赛

    努力是为了不平庸~
    算法学习有些时候是枯燥的,这一次,让我们先人一步,趣学算法!

    这里就要推荐陈小玉老师编著的趣学算法这本书了,本专题的学习也都将会围绕着这本书中的内容进行讲解

    ❤️一名热爱Java的大一学生,希望与各位大佬共同学习进步❤️

    🧑个人主页:@周小末天天开心

    各位大佬的点赞👍 收藏⭐ 关注✅,是本人学习的最大动力

    感谢!

    📕该篇文章收录专栏—趣学算法


    目录

    一、什么是算法

     (1)算法介绍

    (2)算法的特性

    二、斐波那契数列

    算法演示

    总结


    一、什么是算法

     (1)算法介绍

            算法是对问题求解方法的一种描述,它不依赖任何一种语言,既可以用自然语言、程序设计语言(C、C++、Java、Python等)描述,,也可以用流程图、框图来表示。通常情况下,为了更清楚地说明算法的本质,我们会去除计算机语言的语法规则和细节,采用“伪代码”来描述算法。“伪代码”介于自然语言和程序设计语言之间,它更符合人们的表达方式,容易理解,但它并不是严格的程序设计语言。如果要上机调试,则需要转换成标准的计算机程序设计语言才能运行。

    (2)算法的特性

    1)有穷性:算法是由若干条指令组成的有穷序列,总是在执行若干次后结束,不可能永不停止。

    2)确定性:每条语句都有确定的含义,无歧义。

    3)可行性:算法在当前环境条件下可以通过有限次运算来实现。

    4)输入/输出:有零个或多个输入以及一个或多个输出。


    二、斐波那契数列

    斐波那契数列如下:1, 1,  2, 3, 5, 8, 13,  21 ,34……

    特点:可以看出斐波那契数列的特点是从第三个数开始,以后的每一个数都等于前两个数之和

    递归表达式如下:

    算法演示

    伪代码为:

    1. int f(int n) {
    2. if(n == 1 || n == 2) {
    3. return 1;
    4. }
    5. return f(n - 1) + f(n - 2);
    6. }

    Java代码为:

    1. import java.util.Scanner;
    2. public class algorithm01 {
    3. public static void main(String[] args) {
    4. Scanner scanner = new Scanner(System.in);
    5. // 输入一个数,输出其对应的斐波那契数
    6. System.out.println("输入一个数,输出其对应的斐波那契数列:");
    7. add a = new add();
    8. // 定义变量Fibonacci接收返回的斐波那契数
    9. int Fibonacci = a.f(scanner.nextInt());
    10. //输出
    11. System.out.println("对应的斐波那契数为" + Fibonacci);
    12. }
    13. // add类
    14. public class add {
    15. public int f(int n) {
    16. if(n == 1 || n == 2) {
    17. return 1;
    18. }
    19. return f(n - 1) + f(n - 2);
    20. }
    21. }

    查看输出结果:

    可以看出输出了其对应的斐波那契数。


    总结

            初学算法可能会觉得很难,其实难就难在不好理解,因为算法本身就具有一定的复杂性,这就需要多做题、多思考,让思维开放,才能真正领略算法的乐趣。

  • 相关阅读:
    物业保安社区安全员巡更巡逻人员定位管理系统
    CVPR2020-视觉不平衡立体匹配
    Educational Codeforces Round 138 (Rated for Div. 2) A-E
    Blazor前后端框架Known-V1.2.15
    Xposed框架指南
    Ps:图层蒙版的基本操作
    一文带你秒懂 字节序(byte order),比特序(bit order),位域(bit field)
    基于SSM养老院管理系统毕业设计-附源码221609
    Android博通BCM libbt-vendor.so 分析蓝牙初始化流程
    看黄天鹅如何下一颗高端鸡蛋?
  • 原文地址:https://blog.csdn.net/weixin_71646897/article/details/127398615