Java第n个台阶
有n级台阶。从地面(第0级)出发,首先连续的上台阶,上到不超过第n级的
某一个位置后再连续的下台阶,直到回到地面。若每次上下台阶只允许走1级或2级,
请问可能的上下台阶的方案数是多少?
特别地,在0级站着不动也算一种方案。
数据格式:
输入一行包含两个正整数n和m。
输出一个整数,表示n级台阶有多少种合法的走楼梯方案,答案对m取余。
例如:输入:
2 10007
程序应该输出
6
public static void main(String[] args) {
// TODO Auto-generated method stub
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt();
int sum = 0, temp;
for (int i = 0; i <= n; i++) {
temp = fun(i);
sum += temp * temp;
}
System.out.println(sum % m);
}
public static int fun(int n) {
if (n < 0)
return 0;
if (n == 0)
return 1;
return fun(n - 1) + fun(n - 2);
}