過去ログ

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

過去問題一覧へ戻る