double Calculate求阶乘
时间: 2023-11-29 15:03:54 浏览: 30
以下是Java实现求阶乘的代码:
```
public class FactorialCalculator {
public static double calculate(int n) {
if (n < 0) {
throw new IllegalArgumentException("n must be non-negative");
}
if (n == 0) {
return 1;
}
double result = 1;
for (int i = 1; i <= n; i++) {
result *= i;
}
return result;
}
}
```
使用时,可以调用该类的静态方法`calculate`来计算阶乘。例如:
```
double result = FactorialCalculator.calculate(5); // 计算5的阶乘
System.out.println(result); // 输出120.0
```
相关问题
用JAVA编写一个计算器,能实现加减乘除、开平方、求阶乘等计算功能,计算器有图形化界面,代码有注解
很好,我可以帮你解答这个问题。首先,我们需要使用 JavaFX 来创建图形化界面。在 JavaFX 中,我们可以使用 Scene Builder 来创建用户界面,它是一个可视化的工具,可以帮助我们创建复杂的用户界面。然后,我们需要编写代码来实现计算器的逻辑。
以下是一个简单的计算器示例,它可以实现加减乘除、开平方、求阶乘等计算功能。这个计算器使用了 JavaFX 和 Scene Builder,你可以根据自己的需要进行修改和扩展。
```java
import javafx.application.Application;
import javafx.fxml.FXMLLoader;
import javafx.scene.Parent;
import javafx.scene.Scene;
import javafx.stage.Stage;
import javafx.event.ActionEvent;
import javafx.fxml.FXML;
import javafx.scene.control.Button;
import javafx.scene.control.Label;
import javafx.scene.control.TextField;
public class Calculator extends Application {
@FXML
private TextField inputField;
@FXML
private Label outputLabel;
@FXML
private void handleButtonAction(ActionEvent event) {
Button button = (Button) event.getSource();
String buttonText = button.getText();
String inputText = inputField.getText();
if (buttonText.equals("C")) {
inputField.setText("");
outputLabel.setText("");
} else if (buttonText.equals("=")) {
try {
double result = calculate(inputText);
outputLabel.setText(Double.toString(result));
} catch (Exception e) {
outputLabel.setText("Error");
}
} else {
inputField.setText(inputText + buttonText);
}
}
private double calculate(String inputText) throws Exception {
String[] tokens = inputText.split(" ");
double result = Double.parseDouble(tokens[0]);
for (int i = 1; i < tokens.length; i += 2) {
String operator = tokens[i];
double operand = Double.parseDouble(tokens[i + 1]);
switch (operator) {
case "+":
result += operand;
break;
case "-":
result -= operand;
break;
case "*":
result *= operand;
break;
case "/":
result /= operand;
break;
case "^":
result = Math.pow(result, operand);
break;
case "!":
result = factorial((int)result);
break;
case "sqrt":
result = Math.sqrt(result);
break;
case "log":
result = Math.log(result);
break;
default:
throw new Exception("Invalid operator: " + operator);
}
}
return result;
}
private int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
@Override
public void start(Stage stage) throws Exception {
Parent root = FXMLLoader.load(getClass().getResource("calculator.fxml"));
Scene scene = new Scene(root);
stage.setScene(scene);
stage.setTitle("Calculator");
stage.show();
}
public static void main(String[] args) {
launch(args);
}
}
```
这个示例中,我们创建了一个名为 `Calculator` 的 JavaFX 应用程序。它的用户界面由一个文本框、一个标签和多个按钮组成。用户可以在文本框中输入表达式,按下等号按钮后,程序将计算表达式并在标签中显示结果。如果表达式非法,则在标签中显示错误消息。
这个计算器支持加减乘除、开平方、求阶乘、求幂、求对数等计算功能。它使用了一个简单的解析器来解析表达式,并使用 Java 内置的 `Math` 类来计算结果。
实现基本数学运算、函数等功能:加、减、乘、除、阶乘、正弦、余弦和指数运算的计算器
好的,我可以为您提供一个实现基本数学运算、函数等功能的Java计算器示例代码。以下是代码:
```java
import java.util.Scanner;
public class Calculator {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
System.out.println("欢迎使用计算器,请输入表达式(例如:2 + 3 * sin(30)):");
String expression = scanner.nextLine();
double result = calculate(expression);
System.out.println("计算结果为:" + result);
}
public static double calculate(String expression) {
String[] tokens = expression.split(" ");
double num1 = Double.parseDouble(tokens[0]);
for (int i = 1; i < tokens.length; i += 2) {
char operator = tokens[i].charAt(0);
double num2 = Double.parseDouble(tokens[i + 1]);
switch(operator) {
case '+':
num1 += num2;
break;
case '-':
num1 -= num2;
break;
case '*':
num1 *= num2;
break;
case '/':
num1 /= num2;
break;
case '^':
num1 = Math.pow(num1, num2);
break;
case '!':
num1 = factorial(num1);
break;
case 's':
num1 = Math.sin(Math.toRadians(num2));
break;
case 'c':
num1 = Math.cos(Math.toRadians(num2));
break;
case 'e':
num1 = Math.exp(num2);
break;
default:
System.out.println("输入有误!");
return Double.NaN;
}
}
return num1;
}
public static double factorial(double num) {
if (num == 0 || num == 1) {
return 1;
}
return num * factorial(num - 1);
}
}
```
您可以将这段代码复制粘贴到您的Java IDE中并运行它。它将提示您输入表达式,例如:2 + 3 * sin(30),然后输出计算结果。该计算器支持加、减、乘、除、指数运算、阶乘、正弦、余弦和指数运算。希望这个示例对您有帮助!
相关推荐
![rar](https://img-home.csdnimg.cn/images/20210720083606.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)