一开始思路错了,总想着找规律一步到位,但是利用算法会更简单:
1)动态规划
2)递归
import java.util.*;
public class Main{
public static void main(String[] args){
Scanner scan=new Scanner(System.in);
int n=scan.nextInt();
int m=scan.nextInt();
//采用递归法或者动态规划
//1.递归法
// System.out.println(f(n,m));
//2.动态规划
int[][] dp=new int[n+1][m+1];
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
if(i==1||j==1) {
dp[i][j]=i+j;
}else {
dp[i][j]=dp[i-1][j]+dp[i][j-1];
}
}
}
System.out.println(dp[n][m]);
}
//递归法
public static int f(int n,int m){
if(n==1||m==1) return n+m;
return f(n-1,m)+f(n,m-1);
}
}
京公网安备 11010502036488号