java GUI界面实现输入n,输出n!,要求分别定义求阶乘类方法(阶乘传统定义)和求阶乘对象方法(阶乘递归定义)然后调用
时间: 2024-12-20 22:17:24 浏览: 9
python计算阶乘和的方法(1!+2!+3!+…+n!)
在Java中,你可以创建一个GUI界面来接收用户输入的数值n,并通过定义两个方法来计算阶乘:传统的循环法和递归法。首先,我们创建一个`FactorialCalculator`类,其中包含两个方法:一个是静态方法`traditionalFactorial(int n)`,采用循环的方式来计算阶乘;另一个是实例方法`recursiveFactorial(int n)`,使用递归实现。
```java
import javax.swing.*;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
public class FactorialCalculator extends JFrame {
private JTextField inputField;
private JButton calculateButton;
private JLabel resultLabel;
public FactorialCalculator() {
setTitle("阶乘计算器");
setSize(300, 200);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
JPanel panel = new JPanel();
panel.setLayout(new GridLayout(3, 2));
JLabel inputDataLabel = new JLabel("请输入一个整数:");
inputField = new JTextField(5);
panel.add(inputDataLabel);
panel.add(inputField);
calculateButton = new JButton("计算阶乘");
calculateButton.addActionListener(new ActionListener() {
@Override
public void actionPerformed(ActionEvent e) {
int n = Integer.parseInt(inputField.getText());
int traditionalResult = traditionalFactorial(n);
int recursiveResult = recursiveFactorial(n);
resultLabel.setText("循环法结果: " + traditionalResult + "\n递归法结果: " + recursiveResult);
}
});
panel.add(calculateButton);
resultLabel = new JLabel("");
panel.add(resultLabel);
add(panel);
setVisible(true);
}
// 静态方法 - 循环法计算阶乘
public static int traditionalFactorial(int n) {
if (n == 0 || n == 1) return 1;
int factorial = 1;
for (int i = 2; i <= n; i++) {
factorial *= i;
}
return factorial;
}
// 实例方法 - 递归法计算阶乘
public int recursiveFactorial(int n) {
if (n == 0 || n == 1) return 1;
else return n * recursiveFactorial(n - 1);
}
public static void main(String[] args) {
new FactorialCalculator();
}
}
```
在这个程序中,用户在文本框`inputField`中输入数字,点击"计算阶乘"按钮,就会调用这两个方法并显示结果在`resultLabel`上。记得运行`main`函数启动这个GUI应用。
阅读全文