20175310 迭代和JDB
迭代和JDB
1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能
zuheshu.java文件夹下的代码:
import java.util.Scanner;
public class zuheshu {
public static void main(String args[]) {
qiuzhi a=new qiuzhi();
System.out.println("输入m");
Scanner reader1=new Scanner(System.in);
int m=reader1.nextInt();
System.out.println("输入n");
Scanner reader2=new Scanner(System.in);
int n=reader2.nextInt();
if(m>n) //异常情况m>n
return;
int result=qiuzhi.zuhe(n,m);
System.out.println("组合数C(n,m)的结果是"+result);
}
}
qiuzhi.java文件夹下的代码:
class qiuzhi{
static int zuhe(int n,int m){ //求组合数C(n,m)的值
if (m==0)
return 1;
else if (n==m)
return 1;
else
return zuhe(n-1,m-1)+zuhe(n-1,m);
}
}
2 m,n 要通过命令行传入
之前没有看清题意,没有理解用命令行输入的意思,上面zuheshu.java的源代码是通过scanner输入的,而非命令行。通过网上查找资料,了解到命令行的输入不是用scanner,修改zuheshu.java后的程序如下:
public class zuheshu {
public static void main(String args[]) {
qiuzhi a=new qiuzhi();
int []num = new int[args.length];
for (int i=0;i<args.length;i++){
num[i]=Integer.valueOf(args[i]);
}
int n=num[0];
int m=num[1];
if(m>n){
System.out.println("输入格式错误!"); //异常情况m>n
return;
}
int result=qiuzhi.zuhe(n,m);
System.out.println("组合数C(n,m)的结果是"+result);
}
}
3 测试运行截图
正常情况c(3,2)

异常情况c(2, 3)

边界情况c(3,3)

4 正常情况下用JDB调试程序c(3,2)



问题及解决:
问题1:
在做选做作业迭代时,编译源文件报错如下图

问题1解决方案:
第一个错误我想表达的意思是当输入错误的时候退出程序,结果我用的是C语言的写法return 0,应该直接return就可以了。

问题2:
无法从静态上下文中引用非静态方法问题2解决方案:
我发现我的主类zuheshu中含有static,属于静态,而另一个类qiuzhi中不含static,因此不是静态。所以我就在类qiuzhi中加了关键字static,编译运行就对了。

问题3:
在用JDB调试时出错

问题3解决方案:
参考了娄老师的博客(http://www.cnblogs.com/rocedu/p/6371262.html),使用javac -g -d bin src/HelloJDB.java对程序进行编译。注意javac中-g参数是为了产生各种调试信息,一定要加上,否则无法调试。

20175310 迭代和JDB的更多相关文章
- 20175221 《Java程序设计》迭代和JDB(课下作业,选做):
20175221 <Java程序设计> 迭代和JDB(课下作业,选做): 任务详情 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功 ...
- 20175206迭代与JDB测试
迭代与JDB测试 C(n,m)组合数的判定 实验要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 实验案例 ...
- 20175306 迭代和JDB调试
迭代和JDB调试 1.使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 代码展示: public class C { public static ...
- 迭代和JDB
迭代和JDB 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能. 源代码 public class Combination { public st ...
- 迭代和JDB(课下作业,选做)
迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...
- 20175314 《Java程序设计》迭代和JDB
20175314 <Java程序设计>迭代和JDB 要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令 ...
- 20175316盛茂淞 迭代和JDB
迭代和JDB 题目 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图(至少三张:正常如c( ...
- 迭代和JDB调试
迭代和JDB调试 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图(至少三张:正 ...
- 迭代与JDB
1.题目要求 2.程序设计 首先,命令行输入,还是考虑先将输入的数据转化为整型变量 然后,看到C(n,m)=C(n-1,m-1)+C(n-1,m)公式以及"迭代"这两个字,首先想到 ...
随机推荐
- Docker常用命令(二)
Docker常用命令 查看Docker所有正在运行的容器 docker ps 查看Docker已退出的容器 docker ps -a 查看Docker所有镜像 docker images 删除镜像 删 ...
- C# Why does '+' + a short convert to 44
I have a line of code that looks like this: MyObject.PhoneNumber = '+' + ThePhonePrefix + TheBizNumb ...
- MSCRM中报表开发二:创建基于FetchXML报表
1. 获取FetchXML.因为FetchXML难以撰写,所以我们一般都是使用高级查找来生成FetchXML或者通过其他工具来生成.我这里在商机界面通过高级查找制作了一个新的视图,名称为 商机查询, ...
- git 查看/修改用户名、密码
用户名和邮箱地址的作用 用户名和邮箱地址是本地git客户端的一个变量,不随git库而改变. 每次commit都会用用户名和邮箱纪录. github的contributions统计就是按邮箱来统计的. ...
- 原生js实现二级联动下拉列表菜单
二级联动下拉列表菜单的难点在于对后台返回的数据进行解析,不多逼逼,直接上代码 上图是后台返回的数据 实现代码如下: var deviceNotExist = true;//防止数据重复 if(data ...
- JMeter 参数化之利用CSV Data Set Config从文件读取参数并关联变量
参数化之利用CSV Data Set Config从文件读取参数并关联变量 by:授客 QQ:1033553122 1. 添加CSV Data Set Config 右键线程组->配置元 ...
- 测试思想-集成测试 关于接口测试 Part 2
关于接口测试 by:授客 QQ:1033553122 ------------------接Part 1---------------------- 5. 用例设计思想(举例说明) 如上表,是某 ...
- 简单的TabLayout+Fragment选项卡
TabLayout属性: app:tabIndicatorColor="#fff" //下方滚动的下划线颜色 app:tabIndicatorHeight="10dp& ...
- Telephone dialer
运行电话拨号器,需要加这个权限,否则不会打通电话.这个权限是用户权限,是谷歌工程师为了跟自己撇清关系,用户需要权限的时候自己加. 运行android程序的时候提示:ActivityManager: W ...
- Python:GUI之tkinter学习笔记3事件绑定
相关内容: command bind protocol 首发时间:2018-03-04 19:26 command: command是控件中的一个参数,如果使得command=函数,那么点击控件的时候 ...