zoukankan      html  css  js  c++  java
  • 蓝桥杯-n级台阶-java

    /* (程序头部注释开始)

    * 程序的版权和版本声明部分

    * Copyright (c) 2016, 广州科技贸易职业学院信息工程系学生 

    * All rights reserved.

    * 文件名称: 蓝桥杯赛题                           

    * 作    者:   彭俊豪               

    * 完成日期:   2016   年 04月 01日

    * 版 本 号:      001   

    * 对任务及求解方法的描述部分

    * 问题描述:

    有n级台阶。从地面(第0级)出发,首先连续的上台阶,上到不超过第n级的
    某一个位置后再连续的下台阶,直到回到地面。若每次上下台阶只允许走1级或2级,
    请问可能的上下台阶的方案数是多少?
    特别地,在0级站着不动也算一种方案。

    数据格式:

    输入一行包含两个正整数n和m。
    输出一个整数,表示n级台阶有多少种合法的走楼梯方案,答案对m取余。

    例如:输入:
    2 10007
    程序应该输出
    6

     * 程序输出:  

    【样例说明1】
    共有6种方案(其中+表示上台阶,-表示下台阶):
    (1) 原地不动
    (2) +1 -1
    (3) +2 -2
    (4) +2 -1 -1
    (5) +1 +1 -2
    (6) +1 +1 -1 -1

    再例如,输入:
    3 14
    程序应该输出:
    1

    【样例说明2】
    共有15种方案,对14取余后得1。

    【数据规模】
    对于30%的数据,n<=10000;
    对于100%的数据,n<=10^17,m<=2*10^9。

    * 程序头部的注释结束

    */

    上代码:

    import java.util.Scanner;

    public class Test {

      public static void main(String[] args) {
        Scanner input=new Scanner(System.in);
        int n=input.nextInt();
        int m=input.nextInt();

        int[] walk=new int[n+1];    //上台阶的方法数
        walk[0]=1;walk[1]=2;
        for(int i=2;i<n;i++){
          walk[i]=walk[i-1]+walk[i-2];
        }

        int sum=1;//站着不动的方法

        for(int i=0;i<n;i++){
          sum+=walk[i]*walk[i];
        }
        System.out.println(sum%m);

      }

    }

  • 相关阅读:
    深度学习框架caffe在macOS Heigh Sierra上安装过程实录
    关于MacOS升级10.13系统eclipse菜单灰色无法使用解决方案
    Struts2中的OGNL详解
    JAR包介绍大全用途作用详解JAVA
    使用SQLQuery 在Hibernate中使用sql语句
    Spring整合Struts的两种方式介绍
    springMVC使用@ResponseBody返回json
    springMVC controller配置方式总结
    安装GitLab出现ruby_block[supervise_redis_sleep] action run
    Mac系统下源码编译安装MySQL 5.7.17
  • 原文地址:https://www.cnblogs.com/pengjunhao/p/6679657.html
Copyright © 2011-2022 走看看