组队选择

题目描述

逸才奉道玄掌门之命率领青云众弟子深入蛮荒之地寻找灵兽黄鸟,完成使命后率队需经过焚香谷镇守的幽暗小道。焚香谷门卫给一行人由1至n进行了编号,并有意为难让逸才选出k个人组成一队,他们的编号之和恰好等于m。逸才笑了笑说:“组队选择有许多种,你们要哪种?”焚香谷门卫顿时懵了,不知所措地说:“你们按号码降序输出所有方案吧。”

输入

输入一行三个数字n,k和m。(n<=100, k<=10,m<=1000)

输出

按号码降序输出所有组队方案,每个号码后面输出一个空格(包括最后一个数),每组数据占一行。

样例输入

10 3 11

样例输出

2 4 5
2 3 6
1 4 6
1 3 7
1 2 8

代码

import java.util.Scanner;

public class Permutation1280 {
    
    
	int n,k,m;
	int[] A;
	public Permutation1280() {
    
    
		Scanner s=new Scanner(System.in);
		n=s.nextInt(); k=s.nextInt(); m=s.nextInt();	
		A=new int[k+1]; A[0]=0;
		Search(1);
	}
	void Search(int pos) {
    
    
		if(pos>k) {
    
    
			int sum=0;
			for(int i=1;i<=k;i++) sum+=A[i];			
			if(sum!=m) return;						
			for(int i=1;i<=k;i++) 	
				System.out.print(A[i]+" ");		
			System.out.println();
			return;
		}
		for(int i=n;i>=A[pos-1]+1;i--) {
    
    
			A[pos]=i; 
			Search(pos+1);	
		}
	}
	
	public static void main(String[] args) {
    
    
		Permutation1280 p=new Permutation1280();
	}
}

猜你喜欢

转载自blog.csdn.net/callmeCassie/article/details/90549821