一道可以用DP做的简单的题目
/**
* Author:林万新 lwx
* Date: 2017/11/10
* Time: 23:16
* 问题:
* 给你一个n,表示n行n列的表格,然后输出从表格的左上角走到右下角一共有多少条路径?
* 只可以向下或者向右移动
*
* 例子:n =1 ,f(n) =1;
* n = 2, f(n) = 2;
* n = 3,f(n) = 6;
* 思路:其实就是类似于青蛙跳台阶之类的,可以利用DP做,推算出状态公式:
* 例如:在某个DP【i】[j] = dp[i-1][j]+ dp[i][j-1]
* 初始状态dp[0][j] = 1,dp[i][0] = 1
*/
public class Path {
public static void main(String[] args) {
while (true) {
Scanner scanner = new Scanner(System.in);
int n = scanner.nextInt();
int dp[][] = new int[n][n];
for (int i = 0; i < n; i++) {
dp[0][i] = 1;
dp[i][0] = 1;
}
for (int i = 1; i < n; i++)
for (int j = 1; j < n; j++) {
dp[i][j] = dp[i - 1][j] + dp[i][j - 1];
}
int temp = dp[n - 1][n - 1];
System.out.println("一共有 " + temp + "条线路");
}
}
}
运行结果:
1
一共有 1条线路
2
一共有 2条线路
3
一共有 6条线路
4
一共有 20条线路
5
一共有 70条线路
6
一共有 252条线路