最大公约数

来源:互联网 发布:数学系的学不学编程 编辑:程序博客网 时间:2024/04/25 23:10

求两个正整数的最大公约数。

package 最大公约数;import java.awt.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import javax.swing.*;public class MaximalCommonDivisor {JFrame jframe;JPanel jp1,jp2,jp3;JLabel jl1,jl2,jl3;JButton jbtn1,jbtn2,jbtn3;JTextField jt1,jt2,jt3;Box box;public void go(){jl1 = new JLabel("Maximal Common Divisor(最大公约数)");jl2 = new JLabel("请输入任意两个正整数:");jl3 = new JLabel("它们的最大公约数为:");jl1.setFont(new Font("Dialog",Font.PLAIN,25));jl2.setFont(new Font("Dialog",Font.PLAIN,18));jl3.setFont(new Font("Dialog",Font.PLAIN,18));jt1 = new JTextField(8);jt2 = new JTextField(8);jt3 = new JTextField(8);jt3.setEditable(false);jt3.setBackground(Color.CYAN);box = Box.createHorizontalBox();jbtn1 = new JButton(" 求  解 ",new ImageIcon("1.png"));box.add(jbtn1);box.add(Box.createHorizontalStrut(30));jbtn2 = new JButton(" 清  除 ",new ImageIcon("3.png"));box.add(jbtn2);box.add(Box.createHorizontalStrut(30));jbtn3 = new JButton(" 退  出 ",new ImageIcon("2.png"));box.add(jbtn3);jp1 = new JPanel();jp2 = new JPanel();jp3 = new JPanel();jp1.setBackground(Color.WHITE);jp2.setBackground(Color.WHITE);jp1.add(jl1);jp2.add(jl2);jp2.add(jt1);jp2.add(jt2);jp2.add(jl3);jp2.add(jt3);jp3.add(box);jframe = new JFrame("最大公约数");jframe.add(jp1,BorderLayout.NORTH);jframe.add(jp2,BorderLayout.CENTER);jframe.add(jp3,BorderLayout.SOUTH);jframe.setSize(500, 200);jframe.setLocation(450, 200);jframe.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);jframe.setResizable(false);jframe.setVisible(true);/** * 退出按钮注册事件 */jbtn3.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent arg0) {// TODO 自动生成的方法存根System.exit(0);}});/** * 清除按钮注册事件 */jbtn2.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根jt1.setText(null);jt2.setText(null);jt3.setText(null);}});/** * 求解按钮注册事件 */jbtn1.addActionListener(new ActionListener() {@Overridepublic void actionPerformed(ActionEvent e) {// TODO 自动生成的方法存根if (jt1.getText().length() == 0 || jt2.getText().length() == 0) {JOptionPane.showMessageDialog(jframe, "任意文本不能为空,请输入任意两个正整数!","警告", JOptionPane.WARNING_MESSAGE);jt1.setText(null);jt2.setText(null);jt3.setText(null);}else{ /*把字符串转换成整型*/int x = Integer.parseInt(jt1.getText());int y = Integer.parseInt(jt2.getText());int n;if(x>0 && y>0){for(n=x;n>0;n--){if(x%n==0 && y%n==0){/*把整型串转换成字符串*/jt3.setText(Integer.toString(n));break;}}}else{JOptionPane.showMessageDialog(jframe, "输入的两个数必须是正整数,请重新输入!","警告", JOptionPane.WARNING_MESSAGE);}}}});}public static void main(String[] args) {// TODO 自动生成的方法存根MaximalCommonDivisor mcd = new MaximalCommonDivisor();mcd.go();}}



0 0
原创粉丝点击