算法简介和斐波那契数列

举报
周小末天天开心 发表于 2022/11/19 17:02:32 2022/11/19
【摘要】 了解算法和斐波那契数列

一、什么是算法

(1)算法介绍

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

(2)算法的特性

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

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

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

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

二、斐波那契数列

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

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

递归表达式如下:

QQ图片20221018233223.png


算法演示

伪代码为;

int f(int n) {
    if(n == 1 || n == 2) {
        return 1;
    }
    return f(n - 1) + f(n - 2);
}

Java代码为:

import java.util.Scanner;
public class algorithm01 {
    public static void main(String[] args) {
 
        Scanner scanner = new Scanner(System.in);
        // 输入一个数,输出其对应的斐波那契数
        System.out.println("输入一个数,输出其对应的斐波那契数列:");
 
        add a = new add();
        // 定义变量Fibonacci接收返回的斐波那契数
        int Fibonacci = a.f(scanner.nextInt());
 
        //输出
        System.out.println("对应的斐波那契数为" + Fibonacci);
    }
 
 
// add类
public class add {
 
    public int f(int n) {
        if(n == 1 || n == 2) {
            return 1;
        }
        return f(n - 1) + f(n - 2);
    }
}

查看输出结果:

QQ图片20221018234623.png

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

总结

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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。