牛客--2019小米--爬楼梯2

题目描述:
在你面前有一个n阶的楼梯(n>=100且n<500),你一步只能上1阶或3阶。
请问计算出你可以采用多少种不同的方式爬完这个楼梯(到最后一层为爬完)。
(注意超大数据)
输入描述:
一个正整数,表示这个楼梯一共有多少阶
输出描述:
一个正整数,表示有多少种不同的方式爬完这个楼梯
输入:
100
输出:
24382819596721629
题意:
题目描述
题解
dp[i] = dp[i-1]+dp[i-3]
代码:

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.math.BigInteger;
 
public class Main {
public static void main(String[]args)throws IOException{
    BufferedReader br=new BufferedReader (new InputStreamReader(System.in));
    int n=Integer.parseInt(br.readLine());
    BigInteger[]arr=new BigInteger[n+1];
    arr[1]=new BigInteger("1");
    arr[2]=new BigInteger("1");
    arr[3]=new BigInteger("2");
    for(int i=4;i<=n;i++) {
        arr[i]=arr[i-1].add(arr[i-3]);
    }System.out.println(arr[n]);
}
}

发布了228 篇原创文章 · 获赞 1 · 访问量 13万+

猜你喜欢

转载自blog.csdn.net/Ypopstar/article/details/105149255