以前、出題したプログラムクイズをJavaに翻訳してみました。(^_^;
eval()関数の部分は、初め、Cから翻訳しようかと思いましたが、面倒そうなので、JavaScriptを呼び出すことにしました。(^_^;
●Quiz_Opr.java
import javax.script.*; public class Quiz_Opr { static ScriptEngineManager factory = new ScriptEngineManager(); static ScriptEngine engine = factory.getEngineByName("JavaScript"); static String sEval(String sExpr) { try{ return( engine.eval(sExpr).toString() ); } catch(Exception e){ return( "error: "+e ); } } static void swap(char[] s, int i, int j) { char t = s[i]; s[i] = s[j]; s[j] = t; } static boolean next_perm(char[] p, int n, int r) { int i, j, k; if(r <= 0 || n < r) return(false); for(i = r + 1; i <= n-1; i++) for(j = i; j >= r + 1 && p[j-1] < p[j]; j--) swap(p,j,j-1); for(i = n - 1; i > 0 && p[i-1] >= p[i]; i--); if(i==0) return(false); for(j = n - 1; j > i && p[i-1] >= p[j]; j--); swap(p,j,i-1); for(k = 0; k <= (n-i-1)/2; k++) swap(p,i+k,n-k-1); return(true); } public static void main(String[] args) { final String OPR="+-*/="; char[] p=OPR.toCharArray(); String f=""; long tm=System.currentTimeMillis(); // Timer Start do{ f=String.format("5%c4%c3%c2%c1%c0",p[0],p[1],p[2],p[3],p[4]); if(sEval(f.replace("=","=="))=="true") System.out.println(f); }while(next_perm(p,5,5)); tm=System.currentTimeMillis()-tm; // Timer Stop System.out.printf("Runtime : %.3f [sec]\n",(double)tm/1000.0); } }
●実行結果
5-4*3/2+1=0 5=4*3/2-1+0 Runtime : 0.102 [sec]
※参考URL
http://d.hatena.ne.jp/rsc96074/20120105/1325730069
http://q.hatena.ne.jp/1296542184
http://d.hatena.ne.jp/rsc96074/20110202/1296655979
http://d.hatena.ne.jp/rsc96074/20110204/1296771632
●JavaからJavaScriptを呼び出すサンプル - 昼間のメモ
●独習Java 第4版 [大型本] ジョゼフ・オニール (著), 武藤 健志 (監修), トップスタジオ (翻訳)
- 作者: ジョゼフ・オニール,武藤健志,トップスタジオ
- 出版社/メーカー: 翔泳社
- 発売日: 2008/05/29
- メディア: 大型本
- 購入: 1人 クリック: 55回
- この商品を含むブログ (21件) を見る
改訂 新Java言語入門 ビギナー編 (Java言語実用マスターシリーズ)
- 作者: 林晴比古
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2004/12/28
- メディア: 単行本
- クリック: 13回
- この商品を含むブログ (44件) を見る
改訂 新Java言語入門 シニア編 (Java言語実用マスターシリーズ)
- 作者: 林晴比古
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2005/03/30
- メディア: 単行本
- 購入: 1人 クリック: 7回
- この商品を含むブログ (5件) を見る
- 作者: 今井なぎ
- 出版社/メーカー: ソフトバンククリエイティブ
- 発売日: 2009/03/07
- メディア: 単行本
- クリック: 36回
- この商品を含むブログ (7件) を見る
アリエル・ネットワーク株式会社 (著), 井上 誠一郎 (著), 永井 雅人 (著), 松山 智大 (著)
パーフェクトJava (PERFECT SERIES) (PERFECT SERIES 2)
- 作者: アリエル・ネットワーク株式会社,井上誠一郎,永井雅人,松山智大
- 出版社/メーカー: 技術評論社
- 発売日: 2009/09/24
- メディア: 大型本
- 購入: 26人 クリック: 360回
- この商品を含むブログ (35件) を見る
- 作者: (株)アンク
- 出版社/メーカー: 翔泳社
- 発売日: 2005/02/16
- メディア: 単行本
- 購入: 3人 クリック: 73回
- この商品を含むブログ (26件) を見る
- 作者: 堀切堤
- 出版社/メーカー: リックテレコム
- 発売日: 2011/05
- メディア: 単行本
- 購入: 4人 クリック: 377回
- この商品を含むブログ (3件) を見る