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)公式以及"迭代"这两个字,首先想到 ...
随机推荐
- 关于Unsupported major.minor version 52.0解决办法(再次回顾)
对于web项目的配置问题,在很大程度上,tomcat的版本问题起到很大的决定性因素,例如以上问题:Unsupported major.minor version 52.0 表示stanford par ...
- Matlab forward Euler demo
% forward Euler demo % take two steps in the solution of % dy/dt = y, y(0) = 1 % exact solution is y ...
- C#中的out、ref、params详解
out参数: 如果你在一个方法中,返回多个相同类型的值的时候,可以考虑返回一个数组.但是,如果返回多个不同类型的值的时候,返回数组就不行了,那么这个时候,我们可以考虑使用out参数.out参数就侧重于 ...
- Java集合之HashSet源码分析
概述 HashSet是基于HashMap来实现的, 底层采用HashMap的key来保存数据, 借此实现元素不重复, 因此HashSet的实现比较简单, 基本上的都是直接调用底层HashMap的相关方 ...
- 微信小程序顶部(navigationBar)设置为透明
我记得在微信小程序中导航栏的颜色可以在app.json. window里面添加navigationBarBackgroundColor属性,但是颜色只能为纯色.不能使用rgb,或者rgba的色号. ...
- GDAL中GDALDataType中值与其在C++中数据类型对应
GDAL中的GDALDataType是一个枚举型,其中的值为: GDT_Unknown : 未知数据类型 GDT_Byte : 8bit正整型 (C++中对应unsigned char) GDT_UI ...
- Mobile First! Wijmo 5 之 架构
CSDN移动开发频道率先报道的<Mobile First!jQuery UI组件集Wijmo五年最大更新>引起开发者极大关注. 本文就开发者关心的话题之一架构,展开叙述. Wijmo 5是 ...
- loadrunner 脚本开发-执行操作系统命令
脚本开发-执行操作系统命令 by:授客 QQ:1033553122 思路: 用loadrunner system()函数 函数原型: int system( const char *string ); ...
- ViewPager防止Fragment销毁以及取消Fragment的预加载
存在的问题 1. 默认情况下,ViewPager会根据setOffscreenPageLimit()方法设置的大小,自动预加载2. 还是根据setOffscreenPageLimit()方法设置的大小 ...
- Android中处理崩溃闪退错误
Android中处理崩溃闪退异常 大家都知道,现在安装Android系统的手机版本和设备千差万别,在模拟器上运行良好的程序安装到某款手机上说不定就出现崩溃的现象,开发者个人不可能购买所有设备逐个调试, ...