问题:
在n个球中取出m个球(不放回),问一共有多少种取法
解题源代码如下:
/** * 在n个球中取出m个球,问一共有多少种取法 * @author Administrator * */ public class Demo01 { public static int f(int n,int m) { if(n<m) return 0;//不可能事件 if(n==m) return 1;//必然事件 if(m==0||n==0) return 1; return f(n-1,m)+f(n-1,m-1);//分为两种情况,一种是没有取出特定的球,一种时取出了特定的球 //上面一个语句的意思就是,取或者不取 } public static void main(String[] args) { int s = f(10,3); System.out.println(s); } }
解题思路:
其实每次取球就是两种情况:取了要取的球 和 没取要取的球
那么递归体就出来了
再设置递归的跳出条件,就完成了
希望能给大家带来帮助
以上