【アルゴリズム】プログラム猿がコードを書かないのは正しくない57

891 ワード

package com.kingdz.algorithm.time201705;

/**
 * <pre>
 *             
 *  1、2、3、5、10、20       ,      1000g
 *           ,    
 * </pre>
 * 
 * @author kingdz
 * 
 */
public class Algo18 {

	public static void main(String[] args) {
		//        
		int[] weight = new int[] { 1, 2, 3, 5, 10, 20 };
		//        
		int[] sum = new int[] { 1, 1, 1, 1, 1, 1 };
		//         
		int[] flag = new int[1001];
		for (int i = 0; i < flag.length; i++) {
			flag[i] = 0;
		}
		flag[0] = 1;

		int total = 0;
		for (int i = 0; i < 6; i++) {
			for (int j = 0; j < sum[i]; j++) {
				for (int k = flag.length - 1; k >= weight[i]; k--) {
					if (flag[k - weight[i]] == 1 && flag[k] == 0) {
						System.out.print(k + " ");
						flag[k] = 1;
						total++;
					}
				}
			}
		}
		System.out.println("
" + total); } }