栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

【Java实现爬楼梯问题】

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

【Java实现爬楼梯问题】

例如:楼梯一共有3级,他可以每次都走一级,或者第一次走一级,第二次走两级,也可以第一次走两级,第二次走一级,一共3种方法。

输入包含若干行,每行包含一个正整数N,代表楼梯级数,1≤N≤30。

不同的走法数,每一行输入对应一行输出。

这道题其实是斐波那契数列。

可以不需要暴力求解,因为每一次都需要走一个或两个阶梯,由此可以得出在爬最后一个楼梯的时候有两种方式,要么是走一级,要么是走两级。例如我们走到第8个楼梯,只需要找到第7和第6个分别有多少种方法,然后再进行相加最后得出的结果就是第8个楼梯总共的走法。

我们可以再接着进行拆分。最后可以得出F(n) = F(n-1)+F(n-2) (n>=3)。

代码展示

```java

import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int n =sc.nextInt();
       if (n==1||n==2){
        System.out.println(n);
       }else {
         int a = 1;
         int b = 2;
         int  result= 0;
         for (int i = 3; i <= n; i++) {
              result = a + b;
              a = b;
              b = result;
         }
          System.out.println(result);
       }
     }
}

```

第一次看这道题的时候我想到的是暴力求解,一 一列举出来。后来才发现,这道题有更好的方法去做,所以有时候静下心来仔细思考一道题还是有必要的。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/703391.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号