20175206迭代与JDB测试

时间:2023-01-07 19:46:02

迭代与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)的测试
20175206迭代与JDB测试

c(2,3);c(2,2)的测试
20175206迭代与JDB测试

根据组合数的定义,c(n,m)
当m=n时,c(n,m)的值为1
当m=0时,c(n,m)的值为1
所以可得出上述截图的测试结果。

实验测试联系

用JDB调试程序c(X,2)的截图,X为学号最后一位+3
分配资源并进行断点设置后断点设置
步骤如下:
20175206迭代与JDB测试

20175206迭代与JDB测试

20175206迭代与JDB测试

20175206迭代与JDB测试

20175206迭代与JDB测试

实验代码

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分配给文件资源才能成功调试(重点)