要求
1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能
2 m,n 要通过命令行传入
3 提交测试运行截图(至少三张:正常如c(3,2)、异常如c(2, 3)、边界情况如c(m,m))
4 提交正常情况下用JDB调试程序c(X,2)的截图,X为学号最后一位+3,至少四张截图
5 把代码推送到码云
1.代码
import java.util.*;
public class zuHe {
public static void main(String[] args) {
Scanner scanner1 = new Scanner(System.in);
Scanner scanner2 = new Scanner(System.in);
System.out.println("请输入m:");
int m = scanner1.nextInt();
System.out.println("请输入n:");
int n = scanner2.nextInt();
if(m<n){
System.out.println("Error");
}
else{
Yanghui yanghui1 = new Yanghui(m,n);
System.out.printf("C(%d,%d)=%d\n",m,n,yanghui1.yanghuisanjiao(m,n));
}
}
}
class Yanghui {
int m;
int n;
Yanghui(int m,int n){
this.m = m;
this.n = n;
}
int yanghuisanjiao(int m,int n){
int C[][] = new int[m+1][m+1];
for(int i=0;i<m;i++){
C[i][0] = 1;
//printf("%d,%d\n",A[i][0],A[i][1]);
for(int j=1;j<=m;j++){
C[i + 1][j] = C[i][j] + C[i][j - 1];
}
}
return C[m][n];
}
}
2.代码测试
- 正常情况
- 异常情况
- 边缘情况
3.JDB调试
- 正常情况
- 调试第一步
- 利用杨辉三角j=5时情况如下