码迷,mamicode.com
首页 > 数据库 > 详细

迭代和JDB

时间:2019-03-31 11:08:43      阅读:185      评论:0      收藏:0      [点我收藏+]

标签:情况下   情况   迭代   定义   pre   推送   stat   ati   style   

要求
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 把代码推送到码云

1.代码
import java.util.Scanner;
public class Test{
        public static void main(String args[]){
        Digui_zuheshu zhs=new Digui_zuheshu();
        Scanner s=new Scanner(System.in);
        int a=s.nextInt();
        int b=s.nextInt();
        System.out.println(zhs.C(a,b));
        }
}
class Digui_zuheshu {      int C(int n,int m){ if(m==0||m==n) return 1; if(m==1) return n; if(n<=0||n<m) return -1; else return C(n-1,m-1)+C(n-1,m); } }

  2.代码测试

  正常:

技术图片

技术图片

  异常:技术图片

  边界:技术图片

3.JDB调试

技术图片

由于java -g 编译不通过,无法查看本地变量,设置m,n的值

技术图片

 

代码编写调试过程中的问题:

1.在递归算法的编写中,在else的情况里我总是得不到正确的输出

技术图片

解决:将方法C(int m,int n)中的m,n交换

2.main方法中创建对象时,实际参数列表与形式参数列表长度不同。

解决:实际参数有两个,但定义的输入只有一个。所以要用Scanner创建对象,用nextInt生成两个参数。

 

迭代和JDB

标签:情况下   情况   迭代   定义   pre   推送   stat   ati   style   

原文地址:https://www.cnblogs.com/1751-pyc/p/10629121.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!