From g97p0608@mn.waseda.ac.jp Thu May 13 11:57:36 1999 Received: from wise13.mn.waseda.ac.jp (wise13.mn.waseda.ac.jp [133.9.4.145]) by newton.kashi.info.waseda.ac.jp (8.8.8/3.7W) with ESMTP id LAA01567 for ; Thu, 13 May 1999 11:57:34 +0900 (JST) Received: from wise20.mn.waseda.ac.jp (wise20.mn.waseda.ac.jp [133.9.4.141]) by wise13.mn.waseda.ac.jp (8.9.1a/3.7W-19980811) with ESMTP id LAA08033 for ; Thu, 13 May 1999 11:46:39 +0900 (JST) Received: from wise13.mn.waseda.ac.jp (wise13.mn.waseda.ac.jp [133.9.4.145]) by wise20.mn.waseda.ac.jp (8.9.1+3.0W/3.7W-19981111) with ESMTP id LAA18401; Thu, 13 May 1999 11:46:39 +0900 (JST) Received: from g97p0608 (pc045108.tokyo.ppp.waseda.ac.jp [133.9.45.108]) by wise13.mn.waseda.ac.jp (8.9.1a/3.7W-19980811) with SMTP id LAA08020; Thu, 13 May 1999 11:46:37 +0900 (JST) Message-ID: <002501be9cea$aa5db1e0$6c2d0985@g97p0608> From: "HirakuTakayama" To: Cc: "Hiraku Takayama" Subject: JSJ Date: Thu, 13 May 1999 11:45:28 +0900 MIME-Version: 1.0 Content-Type: text/plain; charset="iso-2022-jp" Content-Transfer-Encoding: 7bit X-Priority: 3 X-MSMail-Priority: Normal X-Mailer: Microsoft Outlook Express 5.00.2014.211 X-MimeOLE: Produced By Microsoft MimeOLE V5.00.2014.211 Status: OR 氏名 高山 啓 学籍番号 G97P0608 テーマ 4つの整数を10にする 方法は全てのパターンを力技で実行するという方法です。 欠点は、同じ数が複数回出てきたとき、同じ答えが複数個出てしまうことです。     (例) 1,1,2,5の時  (((1*1)*2)*5)が2回出てきてしまいます。 コンピューターが1つ目の1と2つ目の1を別のものとして扱う(区別するようにProgram していない)ことが原因です。 この点における改良はさほど難しくないように思えるのですが、今回はやってませ ん。機会を見つけて個人的にやろうと思います。 僕は、普段10が出来てしまうと、今度は0から20までチャレンジするようにしていま す。 このProgramも桁数が選択出来ると共に、答えの範囲(x<=answer<=y のxとy)を指定出 来るようにして、それぞれの答えを順番に出力します。 以下Programです。 実行結果はグラフィックになってしまうので、省略しました。 import java.io.*; import java.awt.*; public class JSJ0423_5 { public static void main(String args[]) { UserInterface1 ui1 =new UserInterface1(); } } class TextCanvas extends Canvas { String str; Font f=new Font("SansSerif",Font.PLAIN,12); TextCanvas(String s) { str=s; repaint(); } public void paint(Graphics g) { g.setFont(f); g.drawString(str,10,20); } } class UserInterface1 extends Frame{ file://入力用のclass file://桁数と求める数を入力 int alpha,beta1,beta2; TextField[] tf =new TextField[3]; TextCanvas tc[] =new TextCanvas[2]; UserInterface1() { file://コンストラクタ AWTの設定、表示 Button b =new Button("OK!"); Panel p1 =new Panel(); Panel p2 =new Panel(); tc[0] =new TextCanvas("入力する数の桁数を入力してください。↓"); tf[0] =new TextField("4",1); tc[1] =new TextCanvas("求める答の範囲を整数で指定してください。↓"); tf[1] =new TextField("10",2); tf[2] =new TextField("10",2); p1.setLayout(new FlowLayout()); p1.add(tf[0]); p2.setLayout(new FlowLayout()); p2.add(tf[1]);p2.add(tf[2]); setLayout(new GridLayout(5,1)); add(tc[0]);add(p1);add(tc[1]);add(p2);add(b); resize(300,150); show(); } public boolean action(Event e,Object o) { // ボタンが押されたら数字を受け取る if(e.target instanceof Button) { alpha =Integer.parseInt(tf[0].getText()); beta1 =Integer.parseInt(tf[1].getText()); beta2 =Integer.parseInt(tf[2].getText()); UserInterface2 ui2 =new UserInterface2(alpha,beta1,beta2); } return true; } } class UserInterface2 extends Frame { // 入出力用class // 各桁の数字を入力、 Panel p1,p2; Button b; TextField tf[]; TextCanvas tc; TextArea ta; int N; int beta1,beta2; String str; UserInterface2(int n,int m1,int m2) {// コンストラクタ AWTの表示 N=n; file://桁数 beta1 =m1; file://答 beta2 =m2; int i; p1 =new Panel(); p2 =new Panel(); p1.setLayout(new GridLayout(2,1)); p2.setLayout(new GridLayout(1,N+1)); tf =new TextField[N]; tc =new TextCanvas("各桁の数字を入力してください。↓"); for(i=0; i