20175221 《Java程序设计》
迭代和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; class diedai{
int diedaisuanfa (int n,int m){
if (n==0||n<m)
return -1;
else if(m==0||n==m)
return 1;
else if(m==1)
return n;
else
return diedaisuanfa(n-1,m-1)+diedaisuanfa(n-1,m);
}
}
public class shiyanxuanzuo {
public static void main(String[] args) {
diedai sum=new diedai();
System.out.println("Input m,n:");
Scanner receive= new Scanner(System.in);
int x=receive.nextInt();
int y=receive.nextInt();
System.out.println("C("+x+","+y+")="+sum.diedaisuanfa(x,y)); }
}正常情况
异常情况
边界情况
JDB调试
代码调试中的问题和解决方案
- 问题1:
- 在一开始编写异常情况的时候,我使用了System.out.println语句,结果报错说无返回语句
- 问题1解决方案:
- 百度了一下知道,编写方法是要求有返回值的,使用System.out.println只是输出,不符要求。所以都需要使用return
- 问题2:
- 运行程序时报错,数据类型不兼容,如图
- 问题2解决方案:
- 根据报错提示的行数寻找,发现应该是“==”,而不是“=”,改正即可
代码托管(https://gitee.com/zxjacdl/zxj175221/tree/master/jdbtiaos)