迭代和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
来进行转化
参考博客
- 命令行输入的参数为字符串,所以我们可以通过