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)公式以及"迭代"这两个字,首先想到 ...
随机推荐
- [android] 手机卫士手机定位的原理
手机定位的三种方式:网络定位,基站定位,GPS定位 网络定位,手机连上wifi 2g 3g的时候,手机会有一个ip,误差很大 基站定位,精确度与基站的多少有关,几十米到几公里的误差 GPS定位,至少需 ...
- hexo博客更新主题后上传Git操作
克隆主题: git clone https://github.com/SuperKieran/TKL.git _config.yml文件中主题改为新增主题 # Extensions ## Plugin ...
- 记一次wepy里面的渲染问题(this.$apply()的使用)
今天在用wepy搞小程序的时候遇到了一个小坑,卡了我好一会,因为之前在做React,所以对wepy的了解不是特别深入,所以导致了这个问题的发生 先贴上来关键代码让大家看一看(备注之处是问题解决的方法) ...
- 【读书笔记】iOS-viewWillAppear:和viewDidLoad:
viewDidLoad:是视图第一次载入到内存中后调用的,viewWillApear:则是在每次视图显示到屏幕上之前调用. 参考资料:<iOS编程指南>
- 【读书笔记】iOS-对iOS应用进行模糊测试
一,模糊测试,是指通过反复向待测应用发送畸形的数据,对应用进行动态测试的过程. 二,模糊测试,也称动态分析,是一种构造非法输入并将其提供给应用,以期让应用暴露出某些安全问题的艺术和科学. 参考资料:& ...
- 网络基础 http 会话(session)详解
http 会话(session)详解 by:授客 QQ:1033553122 会话(session)是一种持久网络协议,在用户(或用户代理)端和服务器端之间创建关联,从而起到交换数据包的作用机制 一. ...
- matplotlib多plot可视化
代码: # -*- coding: utf-8 -*- """ Created on Thu Jul 12 16:37:47 2018 @author: zhen &qu ...
- [20171225]变态的windows批处理4.txt
[20171225]变态的windows批处理4.txt --//昨天学习windows 批处理的echo &.使用它可以实现类似回车换行的功能.例子: 1.echo &.R:\> ...
- Zabbix3.x 监控磁盘IO与自定义模板
引言 Zabbix自带的模板,帮助我们完成了一些比较常用的监控.但如果想要监控磁盘的IO,zabbix并没有给我们提供这么一个模板,所以我们需要自己来创建一个模板来完成磁盘IO的监控. 操作步骤 1. ...
- Linux命令大全总结
目录方面的命令:ls,dir,cd,clear,mkdir ls 显示指定目录的文件和目录 ls -a 列出目录下的所有文件,包括以 . 开头的隐藏文件 ls -l 显示指定目录的详细列表 ls -R ...