迭代和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的更多相关文章

  1. 20175221 《Java程序设计》迭代和JDB(课下作业,选做):

    20175221 <Java程序设计> 迭代和JDB(课下作业,选做): 任务详情 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功 ...

  2. 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 要通过命令行传入 实验案例 ...

  3. 20175306 迭代和JDB调试

    迭代和JDB调试 1.使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 代码展示: public class C { public static ...

  4. 迭代和JDB

    迭代和JDB 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能. 源代码 public class Combination { public st ...

  5. 迭代和JDB(课下作业,选做)

    迭代和JDB(课下作业,选做) 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图 ...

  6. 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 要通过命令 ...

  7. 20175316盛茂淞 迭代和JDB

    迭代和JDB 题目 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图(至少三张:正常如c( ...

  8. 迭代和JDB调试

    迭代和JDB调试 题目要求 1 使用C(n,m)=C(n-1,m-1)+C(n-1,m)公式进行递归编程实现求组合数C(m,n)的功能 2 m,n 要通过命令行传入 3 提交测试运行截图(至少三张:正 ...

  9. 迭代与JDB

    1.题目要求 2.程序设计 首先,命令行输入,还是考虑先将输入的数据转化为整型变量 然后,看到C(n,m)=C(n-1,m-1)+C(n-1,m)公式以及"迭代"这两个字,首先想到 ...

随机推荐

  1. [android] 手机卫士自定义滚动控件

    TextView控件设置单行显示 android:singleLine=”true” 设置TextView开始的位置显示省略号,android:ellipsize=”start” 设置滚动属性,and ...

  2. 【Java】模拟Sping,实现其IOC和AOP核心(二)

    接着上一篇,在上一篇完成了有关IOC的注解实现,这一篇用XML的方式实现IOC,并且完成AOP. 简易的IOC框图 注解的方式实现了左边的分支,那么就剩下右边的XML分支: XmlContext:这个 ...

  3. Matlab illustrate stiffness

    % matlab script to illustrate stiffness % using simple flame propagation model close all clear all % ...

  4. 洛谷P4344 [SHOI2015]脑洞治疗仪(ODT)

    题意 题目链接 Sol ODT板子题. 操作1直接拆区间就行. #include<bits/stdc++.h> #define fi first #define se second con ...

  5. mysql5.7 安装和多源复制实践

    MySQL 5.7发布后,在复制方面有了很大的改进和提升.比如开始支持多源复制(multi-source)以及真正的支持多线程复制了.多源复制可以使用基于二进制日子的复制或者基于事务的复制.下面我们说 ...

  6. 测试思想-集成测试 关于接口测试 Part1

    关于接口测试 by:授客 QQ:1033553122 接口定义 接口泛指实体把自己提供给外界的一种抽象化物,用以由内部操作分离出外部沟通方法,使其能被修改内部而不影响外界其他实体与其交互的方式. 举例 ...

  7. Android 开创java世界(JNI Invocation API)

    在Android的世界中,由名称为app_process的C++本地应用程序(路径为:framework/base/cmds/app_process/app_main.cpp)调用JNI Invoca ...

  8. python 之路初(一):pycharm 安装 和 环境配置 和 中文乱码问题

    从健身和学习中我一体会到坚持的力量.想写写东西的想法已经好久了,就是不知道怎么开始.最近生活开始给我各种攻击和磨练,我从声嘶力竭到沉默到默默坚持自己,改变自己并总结告诉自己:少说多看,看破不说破,宁愿 ...

  9. 第七章 Hyper-V 2012 R2 授权管理

    当企业或组织的规模越来越大时,维护某一项单独的应用可能会由特定的运维人员进行管理.考虑到安全风险的问题,一般特定的运维人员不会拥有域管理员权限.自 Windows Server 2012 开始,操作系 ...

  10. Opengl正交矩阵 glOrthof 数学原理(转)

    http://blog.sina.com.cn/s/blog_6084f588010192ug.html 在opengles1.1中设置正交矩阵只要一个函数调用就可以了:glOrthof,但是open ...