Я создаю калькулятор, который запрашивает у пользователя вводы a
и b
. Затем пользователь получает меню, состоящее из цифр 1-6, которое позволяет ему складывать, вычитать, умножать, делить, получать факториал и выходить для сброса l oop. Я хотел знать, есть ли у сканера способ распознавать вводимые пользователем данные как факториал для сложения или вычитания. Например, если введено значение 2! + 3!
, то результат должен быть 8
. Как заставить программу распознавать целое число с !
как факториал? Ниже мой код:
import java.util.Scanner;
public class Calculator {
public static void main(String[]args) {
int m, n, opt, add, sub, mul,fact;
double div;
Scanner s = new Scanner(System.in);
System.out.print("Enter first number:");
m = s.nextInt();
System.out.print("Enter second number:");
n = s.nextInt();
while(true)
{
System.out.println("Enter 1 for addition");
System.out.println("Enter 2 for subtraction");
System.out.println("Enter 3 for multiplication");
System.out.println("Enter 4 for division");
System.out.println("Enter 5 for factorial");
System.out.println("Enter 6 to Exit and start again");
opt = s.nextInt();
switch(opt)
{
case 1:
add = m + n;
System.out.println("Result:"+add);
break;
case 2:
sub = m - n;
System.out.println("Result:"+sub);
break;
case 3:
mul = m * n;
System.out.println("Result:"+mul);
break;
case 4:
div = (double)m / n;
System.out.println("Result:"+div);
break;
case 5:
int i=1;
fact = 1;
for( i = m; i > 0; i--){
fact *= i;
}
System.out.println("Result:"+fact);
break;
case 6:
System.out.print("Enter first number:");
m = s.nextInt();
System.out.print("Enter second number:");
n = s.nextInt();
}
}
}
}