OKWaveで見つけた判断推理の順序関係の問題をJavaで解いてみました。(^_^;
こういう類の問題は、プログラムを作って解けても自分で解けないと何の役にも立たないのですが、敢えて、役に立たないことをやってみるのも、また乙なものです。(^_^;
ある会社のA〜Eの5つの支店について、それぞれの支店の社員数を調べたところ、次のア〜エのことが分かった。
ア・社員数が最も多いのはC支店であり、C支店の社員数は45人であった。
イ・社員数が2番目に多い支店とC支店との社員数の差は2人であった。
ウ・A支店とD支店との社員数の差は2人、B支店とD支店との社員数の差は3人、D支店とE支店との社員数の差は4人であった。
エ・A〜Eの5つの支店の社員数の平均は40人であった。以上から判断して、社員数が3番目に多い支店と4番目に多い支店との組み合わせとして、正しいのはどれか。
I・3番目:A 4番目:B
II・3番目:B 4番目:D
III・3番目:B 4番目:E
IV・3番目:D 4番目:A
V・3番目:D 4番目:E
●EmployeeNumber.java
/* * EmployeeNumber.java * */ import java.util.Arrays; public class EmployeeNumber { // xがa[]の何番目にあるか調べるメソッド static int getPos(int[] a, int x) { for(int i=0; i< a.length; i++) if(a[i]==x) return(i); // あるときは、0〜a.length-1を返す. return(-1); // ないときは、-1を返す. } // a[]の中で n 番目に大きな数値を取得するメソッド static int Large(int[] a, int n) { int m=a.length; int[] b = (int[])a.clone(); // a[]に影響を与えないようにするため Arrays.sort(b); if(n< 1 || m< n) n=1; // n が範囲外の時は、n=1 return(b[m-n]); } static char getNameOfLarge(int[] a, int x) { return( "ABCDE".charAt(getPos(a,Large(a,x))) ); } public static void main(String[] args) { final int c = 45; // 条件ア int a,b,d,e; long tm=System.nanoTime(); // Timer Start for(d=1; d< c; d++){ for(a=d-2; a<=d+2 && 0< a && a< c; a+=2*2){ // 条件ウ for(b=d-3; b<=d+3 && 0< b && b< c; b+=3*2){ // 条件ウ for(e=d-4; e<=d+4 && 0< e && e< c; e+=4*2){ // 条件ウ if(a+b+c+d+e!=40*5) continue; // 条件エ int[] n = new int[] {a,b,c,d,e}; if(c-Large(n,2)!=2) continue; // 条件イ // チェックを潜り抜けたものだけを表示 System.out.println(Arrays.toString(n)); System.out.println( "3番目: "+getNameOfLarge(n,3) ); System.out.println( "4番目: "+getNameOfLarge(n,4) ); } } } } tm=System.nanoTime()-tm; // Timer Stop System.out.printf("Runtime : %.3f [sec]\n",(double)tm/1e9); } }
●実行結果
[37, 36, 45, 39, 43] 3番目: D 4番目: A Runtime : 0.001 [sec]
※参考URL
●判断推理の順序関係の問題を自分で解いてみた。
- 作者: 柴田望洋
- 出版社/メーカー: SBクリエイティブ
- 発売日: 2007/08/08
- メディア: 単行本
- 購入: 16人 クリック: 271回
- この商品を含むブログ (55件) を見る
- 作者: 今井なぎ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/03/07
- メディア: 単行本
- クリック: 36回
- この商品を含むブログ (7件) を見る
鉛筆パズルゲームプログラミング ナンバープレース・お絵かきパズル・ナンバークロスワードのアルゴリズム
- 作者: 棚床弘樹
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2007/06/27
- メディア: 大型本
- 購入: 2人 クリック: 23回
- この商品を含むブログ (28件) を見る