抽签-穷举算法

package java操作excel;

import java.util.Scanner;

/**
 * 抽签:
 * 将写有数字的n个纸片放入到口袋中,你可以从口袋中抽取4个纸片,每次记下数字后放回,如果4个数字的和是m,你就赢,否则你就输
 * @author Administrator
 *输入
 *n = 3;
 *m = 10;
 *k = {1,3,5}
 *输出YES(4次抽取的是1,1,3,5和就是10)
 *
 *
 */
public class CollectionUtil {

	public static void main(String[] args) {
		
		Scanner input = new Scanner(System.in);
		int n = input.nextInt();
		int m = input.nextInt();
		int k[] = new int[n];
		for (int i=0;i<k.length;i++) {
			k[i] = input.nextInt();
		}
		
		boolean flag = false;
		
		for (int a = 0;a<n;a++) {
			for (int b = 0;b<n;b++) {
				for (int c = 0;c<n;c++) {
					for(int d = 0;d<n;d++){
						if (k[a]+k[b]+k[c]+k[d] == m) {
							flag = true;
						}
					}
				}
			}
		}
		
		if (flag) {
			System.out.println("Yes");
		}else{
			System.out.println("No");
		}
		
		
		
		
	}
	
	
}

  

posted on 2015-09-24 12:34  airycode  阅读(647)  评论(0)    收藏  举报

导航