Java第n个台阶

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);
	}

猜你喜欢

转载自blog.csdn.net/m0_48781254/article/details/108807089