本文主要是介绍组合,Java,算法,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
组合;从m个数中选出n个数的可能方法数:
import java.util.Scanner;
public class ZuHe {static int m; //数字的个数static int n; //组合的个数static int[] arr; //存放所有的数static int[] arrZ; //存放组合static int time;public static void main(String[] args) {Scanner input=new Scanner(System.in);m=Integer.valueOf(input.nextLine());n=Integer.valueOf(input.nextLine());input.close();time=0;arr=new int[m];for (int i = 0; i < arr.length; i++) {arr[i]=i+1;}arrZ=new int[n];getZuHe(0,0);System.out.println(time);}//递归产生组合数public static void getZuHe(int j,int i){if(j==n){time++;printf();return;}for (; i < arr.length-arrZ.length+1+j; i++) {arrZ[j]=arr[i];getZuHe(j+1,i+1);}}public static void printf(){for (int i = 0; i < arrZ.length; i++) {System.out.print(arrZ[i]+" ");}System.out.println();}
}
PS:其实也可以用2进制数表示,当m位2进制数有n位1(也可以是0)时输出对应的数。也可以求出组合数;
这篇关于组合,Java,算法的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!