|
kasama |
|
こんばんわ、前回同様、今回もプログラムで解きました^-^;でも、たぶん手でやった方が早いでしょうね。
import java.util.*; public class Question374 { public static void main(String args[]) { Integer[] weights = new Integer[]{ new Integer(1), new Integer(1), new Integer(4), new Integer(4), new Integer(16), new Integer(16), new Integer(64), new Integer(64), new Integer(256), new Integer(256)}; List weightList = new ArrayList(); for (int i = 1; i < weights.length; ++i) { List list = new Combination(Arrays.asList(weights), i).getList(); for (Iterator iter = list .iterator(); iter.hasNext(); ) { List eachList = (List) iter.next(); int weight = 0; for (int j = 0; j < eachList.size(); ++j) weight += ((Integer) eachList.get(j)).intValue(); Integer weightInt = new Integer(weight); if (!weightList.contains(weightInt)) weightList.add(weightInt); } } Collections.sort(weightList, new Comparator() { public int compare(Object o1, Object o2) { return ((Integer) o1).compareTo((Integer) o2); } } ); int iTh = weightList.indexOf(new Integer(289)) + 1; System.out.println("289gは小さいほうから" + iTh + "何番目の重さです"); } } |
|
和歌山
10月16日(木) 0:23:18
MAIL:kasama@s34.co.jp 19623 |