迭代和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 把代码推送到码云
代码
import java.util.Scanner;
public class DIEDAI {
public static int diedai (int m,int n) {
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);
}
public static void main(String[] args) {
int [] a = new int [2];
int sum,i;
for(i=0;i<=args.length;i++) {
Scanner sc = new Scanner(System.in);
int b = sc.nextInt();
a[i] = b;
}
sum = diedai(a[0],a[1]);
if(sum == 0)
System.out.println("请重新输入");
else
System.out.println(sum);
}
}
代码运行结果
- 正常
- 异常
- 边界
JDB调试过程
作业收获
本次的收获在于JDB调试方面,以前很少使用JDB的调试,所以基本操作并不熟悉,这次在外力的压迫下,对于JDB的使用方法有了比较全面的了解,比如查看对象用dump,给对象赋新值用"set 对象 = 值"等等。