import java.applet.Applet; import java.awt.*; public class test2 extends Applet { /*-------------------------------------------------------*/ /* 出力情報 */ int A, B; /* 1段目と2段目の数 */ int cnt; /* 解の個数 */ /* 10進数nのm桁目の数を返すサブルーチン */ int sub(int n, int m) { int i; /* nをm-1回,10で割る */ for (i=1; i=100 && c<=999 && d>=100 && d<=999 && e>=1000 && e<=9999) { /* dの2桁目が4で,eの3桁目が3か? */ if (sub(d,2)==4 && sub(e,3)==3) { A = a; B = b; /* 解の記録 */ cnt++; /* 解の個数 */ } } } } } /*-------------------------------------------------------*/ public void init() { setBackground(new Color(200,200,200)); setLayout(new BorderLayout()); Panel psouth = new Panel(); psouth.add(new Button("click")); add("South", psouth); } public void paint(Graphics g) { int i, c, d, e; for (i=1; i<=2; i++) { g.drawRect(97-i*20, 5,16,16); g.drawRect(97-i*20,25,16,16); } for (i=1; i<=3; i++) { g.drawRect(97-i*20,45,16,16); g.drawRect(77-i*20,65,16,16); } for (i=1; i<=4; i++) g.drawRect(97-i*20,85,16,16); g.drawLine(30,43,100,43); g.drawLine(10,83,100,83); g.setFont(new Font("Helvetica",Font.BOLD,18)); g.drawString("x",40, 40); if (A == 0) { g.drawString("4",40, 80); g.drawString("3",40,100); g.setFont(new Font("Helvetica",Font.PLAIN,12)); g.drawString("cnt = ",30,115); } else { c = A * (B % 10); d = A * (B / 10); e = A * B; g.setFont(new Font("Helvetica",Font.BOLD,18)); for (i=1; i<=2; i++) { g.drawString(Integer.toString(sub(A,i)),100-i*20, 20); g.drawString(Integer.toString(sub(B,i)),100-i*20, 40); } for (i=1; i<=3; i++) { g.drawString(Integer.toString(sub(c,i)),100-i*20, 60); g.drawString(Integer.toString(sub(d,i)), 80-i*20, 80); } for (i=1; i<=4; i++) g.drawString(Integer.toString(sub(e,i)),100-i*20,100); g.setFont(new Font("Helvetica",Font.PLAIN,12)); g.drawString("cnt = "+Integer.toString(cnt),30,115); } } public boolean action(Event e, Object arg) { if ("click".equals(arg)) { if (A == 0) puzzle(); else A = cnt = 0; repaint(); } return true; } }