每過1分鐘,智能機器人必須隨機的從一個貨架下移動到相鄰的一個貨架下。比如剛開始智能機器人在第4個貨架下,過1分鐘後,智能機器人可能會在第3個貨架下或者在第5個貨架下。如果剛開始時智能機器人在第1個貨架下,過1分鐘以後,智能機器人一定會在第2個貨架下。
現在告訴你貨架的數目N,以及智能機器人開始所在的位置P,小明很想知道,在M分鐘後,智能機器人到達第T貨架,一共有多少種行走方案數。 請幫小明算一算。
貨架的數量 N 智能機器人的起始位置 P 時間 M 目的地貨架 T
輸出:
一共有多少種行走方案數.
輸入範例:
3
2
4
2
輸出範例:
4
代碼如下:
import java.util.Scanner;
public class Main1 {
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int n = in.nextInt();
int p = in.nextInt();
int m = in.nextInt();
int t = in.nextInt();
in.close();
int out = 0;
if (n > 0 && p > 0 && p <= n && m >= 0 && t > 0 && t <= n) {
int dp[][] = new int[m + 1][n + 2];// dp[0]都爲0,0位置和n+1位置都爲0,防止數組溢出
dp[0][p] = 1;
for (int i = 1; i <= m; i++) {// i分鐘
for (int j = 1; j <= n; j++) {// 到達j位置
// i分鐘到達j位置的走法數,等於i-1分鐘到達j兩端時走法數的和
dp[i][j] = dp[i - 1][j + 1] + dp[i - 1][j - 1];
}
}
out = dp[m][t];
}
System.out.println(out);
}
}