組み合わせの数
int fact(int num){ int rs=1; for (int i=1;i<=num;i++){ rs = rs*i; } return rs; }
void permbutton_actionPerformed(ActionEvent e) { int rs=1; int nnum=Integer.parseInt(nField.getText()); int knum=Integer.parseInt(kField.getText()); rField.setText(Integer.toString(fact(nnum)/fact(nnum-knum))); }
import java.awt.*; import java.awt.event.*; import java.applet.*; public class PermNum extends Applet { private boolean isStandalone = false; private TextField nField = new TextField(); private TextField kField = new TextField(); private Button permbutton = new Button(); private TextField rField = new TextField(); private Label label1 = new Label(); private Label label2 = new Label(); //コンポーネントの初期化 public void init() { nField.setText("5"); nField.setBounds(new Rectangle(60, 40, 60, 20)); this.setLayout(null); kField.setBounds(new Rectangle(200, 40, 60, 20)); kField.setText("3"); permbutton.setLabel("順列"); permbutton.setBounds(new Rectangle(50, 100, 80, 20)); permbutton.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(ActionEvent e) { permbutton_actionPerformed(e); } }); rField.setText("0"); rField.setBounds(new Rectangle(100, 150, 80, 20)); label1.setText("n"); label1.setBounds(new Rectangle(35, 40, 20, 20)); label2.setText("k"); label2.setBounds(new Rectangle(160, 40, 20, 20)); this.add(permbutton, null); this.add(kField, null); this.add(rField, null); this.add(nField, null); this.add(label1, null); this.add(label2, null); } int fact(int num){ int rs=1; for (int i=1;i<=num;i++){ rs = rs*i; } return rs; } void permbutton_actionPerformed(ActionEvent e) { int rs=1; int nnum=Integer.parseInt(nField.getText()); int knum=Integer.parseInt(kField.getText()); rField.setText(Integer.toString(fact(nnum)/fact(nnum-knum))); } }