迭代和JDB

迭代和JDB

一、题目要求:

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 把代码推送到码云

二、代码实现:

class M{
    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[] a = new int[args.length];
        int n = 0;
        int m = 0;
        int result = 0;
        M b = new M();
        if (args.length == 2) {
            for (int i = 0; i < args.length; i++) {
                a[i] = Integer.parseInt(args[i]);
            }
            n= a[0];
            m= a[1];
            if(n<m){
                System.out.println("输入数据错误!");
            }
            else {
                result = b.C(n,m);
                System.out.println("结果为:"+result);
            }
        }
        else System.out.println("输入数据数量存在错误");
    }
}



三、代码思路:

本题实现了一个对组合数求值的过程。在求值时,需要考虑数据的特殊性。关于组合数有如下规定:
C(n,0)=1 C(n,n)=1 C(0,0)=1
同时,n不可小于m,要手动控制当输入中n小于m的情况。
其次,m、n要求在命令行输入,可以将命令行传入的字符串存为数组,n取数组第一个值,m取第二个值来实现。

四、JDB调试:



原文地址:https://www.cnblogs.com/darklord0604/p/10623446.html