迭代和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来进行转化
参考博客
- 命令行输入的参数为字符串,所以我们可以通过
迭代和JDB(课下作业,选做)的更多相关文章
- 20175221 《Java程序设计》迭代和JDB(课下作业,选做):
20175221 <Java程序设计> 迭代和JDB(课下作业,选做): 任务详情 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功 ...
- MyOD(课下作业,选做)
MyOD(课下作业,选做) 代码要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...
- 20175314薛勐 MyOD(课下作业,选做)
MyOD(课下作业,选做) 要求 编写MyOD.java 用java MyOD XXX实现Linux下od -tx -tc XXX的功能 思路 伪代码: 读取命令行输入的参数(文件名) 以16为每个字 ...
- 20175221 MyCP(课下作业,必做)
MyCP(课下作业,必做) 任务详情 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: - java MyCP -tx XXX1.txt XXX2 ...
- 20175333曹雅坤MyCP(课下作业,必做)
MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...
- ###20175311MyCP(课下作业,必做)
MyCP(课下作业,必做) 作业题目 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.b ...
- MyCP(课下作业,必做)
MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2 的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bi ...
- 必做课下作业MyCP
20175227张雪莹 2018-2019-2 <Java程序设计> 必做课下作业MyCP 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支 ...
- 20175314薛勐 MyCP(课下作业,必做)
MyCP(课下作业,必做) 要求 编写MyCP.java 实现类似Linux下cp XXX1 XXX2的功能,要求MyCP支持两个参数: java MyCP -tx XXX1.txt XXX2.bin ...
随机推荐
- Flutter获取点击元素的位置与大小
使用 WidgetsBindingObserver获取 class CloseTap extends StatefulWidget { @override _CloseTapTapState crea ...
- js工具方法
获取页面链接中的参数,以数组形式返回: function getParamsFromHref() { var parameters = window.location.search.substr(1) ...
- h5手机查看
1.装个node:2.全局装个anywhere的npm包.(npm i -g anywhere)3.大功告成,现在到任意目录下用命令行执行anywhere就可以:(-p 参数可以设置启动端口) 补充: ...
- js回调地域 和 用promise解决方法
回调地狱: function3({cb3()}){ function2({cb2(cb3)}){ //cb2触发了cb3,并传值 function1({cb1(cb2)}){ //cb1触发了cb2, ...
- springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetomany
springdata 查询思路:基本的单表查询方法(id,sort) ---->较复杂的单表查询(注解方式,原生sql)--->实现继承类---->复杂的多表联合查询 onetoma ...
- call(),apply(),bind()区别?
每个函数都包含两个非继承而来的方法,apply()和call(),这两方法的用途都是在特定的作用域中调用函数,实际上等于设置函数数体内的this对象的值. apply()和call()第一个参数都一样 ...
- 特殊计数序列——第二类斯特林(stirling)数
计算式 \[ S(n,m)=S(n-1,m-1)+mS(n,m) \] \(S(0,0)=1,S(i,0)=0(i>0)\) 组合意义 将\(n\)个不可分辨的小球放入\(m\)个不可分辨的盒子 ...
- (转)Java回收对象的标记 和 对象的二次标记过程
Java回收对象的标记 和 对象的二次标记过程 二次标记 针对这个问题,虚拟机的做法是进行两次标记,即第一次标记不在“关系网”中的对象.第二次的话就要先判断该对象有没有实现finalize()方法了, ...
- 微信小程序绘制分享图
微信小程序绘制分享图例子: demo下载地址:https://gitee.com/v-Xie/wxCanvasShar 大致代码会再以下说明 实际开发项目: 基础知识点: 了解canvas基础知识 w ...
- java 判断语句和循环语句
一.判断语句:if和switch if(关系表达式1) { 语句体1; }else if (关系表达式2) { 语句体2; }…else { 语句体n+; } switch(表达式) { case 值 ...