码迷,mamicode.com
首页 > 其他好文 > 详细

递归实现C(m,n)从m个数中取出n个

时间:2020-11-26 14:16:21      阅读:5      评论:0      收藏:0      [点我收藏+]

标签:递归   取出   void   system   fun   结果   一个   打印   for   

从M个数中任一取出N个数,并打印结果,
思路:
假设从5个数中任意取3个;相当于从5个数中取出1个后,在剩下的4个里任取2个;
而从4个里任取2个又相当于从4个里取出一个后在剩下的3个里任取一个。

package res;

public class Cmn {
	// 从m个数中取n个数
	static int[] RES;//用来保存取出的结果

	public static void main(String[] args) {
		C(13, 5);
	}

	public static void C(int m, int n) {
		RES = new int[n];
		func(m, n);
	}

	public static void func(int m, int n) {
		int i, j;
		for (i = n; i <= m; i++) {
			RES[n - 1] = i;
			if (n > 1) {
				func(i - 1, n - 1);
			} else {
				for (j = 0; j < RES.length(); j++)
					System.out.print(RES[j] + "  ");
				System.out.println();
			}
		}
	}
}

递归实现C(m,n)从m个数中取出n个

标签:递归   取出   void   system   fun   结果   一个   打印   for   

原文地址:https://www.cnblogs.com/zhang-han/p/14019042.html

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