迭代与JDB测试 C(n,m)组合数的判定
实验要求
1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能
2 m,n 要通过命令行传入
实验案例
测试运行截图
c(3,2)的测试
c(2,3);c(2,2)的测试
根据组合数的定义,c(n,m)
当m=n时,c(n,m)的值为1
当m=0时,c(n,m)的值为1
所以可得出上述截图的测试结果。
实验测试联系
用JDB调试程序c(X,2)的截图,X为学号最后一位+3
分配资源并进行断点设置后断点设置
步骤如下:
实验代码
class LDCshiyan{
int C(int n,int m){
if (m==n||m==0){
return 1;
}
else return C(n-1,m-1)+C(n-1,m);
}
}
public class Diedai {
public static void main(String[] args) {
int Arr[] = new int[args.length];
for (int i = 0; i<args.length; i++) {
Arr[i] = Integer.parseInt(args[i]);
}
int n= Arr[0];
int m= Arr[1];
int result;
LDCshiyan x = new LDCshiyan();
if(n<m||m<0||n<0){
System.out.println("错误的输入方式!");
}
else {
result = x.C(n,m);
System.out.println("结果为:"+result);
}
}
}
实验要点及总结
在程序的调试过程中,我直接用scanner进行读取输入的数据,结果经过询问同学这并不满足条件 ——从命令行输入,所以经过同学的指点以及上网查询如何在命令行中输入数据,我对我的程序进行了大幅度的修改,最后完成了对该程序的调试。
在命令中必须用classpath分配给文件资源才能成功调试(重点)