20175221 《Java程序设计》迭代和JDB(课下作业,选做):
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)