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

代码

public class Combination {
    public static void main(String[] args) {
        int [] s = new int [2];
        int sum,i;
        for(i=0;i<args.length;++i) {
            s[i] = Integer.parseInt(args[i]);
        }
        sum = diedai(s[0],s[1]);
        if(sum == 0)
            System.out.println("wrong");
        else
            System.out.println(sum);
    }
    public static  int diedai (int n,int m) {
        if(m==1)
            return n;
        else if(m==0||m==n)
            return 1;
        else if(n<m||n==0)
            return 0;
        else
            return diedai(n-1,m-1)+diedai(n-1,m);
    }
}

代码托管

测试截图

  • 运行正常

  • 运行异常

  • 边界情况

JDB调试截图

  • 设置断点至代码第八行,观察命令行字符串转化情况

  • 运用list语句观察目前运行到的位置,注意use ./src 进入.java文件所在文件夹

  • step up语句运用

  • 设置断点至最后C(9,2)结果为36

问题

  • 使用命令行输入变量
    • 命令行输入的参数为字符串,所以我们可以通过Integer.parseInt来进行转化
      参考博客
原文地址:https://www.cnblogs.com/20175226wpy/p/10631040.html