时间:2021-07-01 10:21:17 帮助过:26人阅读
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