题解:
设location[i] 表示第i个格子有location[i]种方案
当前所在格子从来个位置达到
- 前一个格子走一步到达
- 前两个格子走两步到达
所以答案由location[i-1]+location[i-2]组成,递归可知
注意本题只有一次查询,所以不需要建立数组。
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner cin = new Scanner(System.in);
long n;
n = cin.nextLong();
System.out.println(solve(n));
}
public static long solve(long n){
if(n<=2) return n;
long first = 1;
long second = 2;
long res=0;
while(n>2){
res = first+second;
first = second;
second = res;
n--;
}
return res;
}
}