Я должен создать программу, которая запрашивает у пользователя число и принимает факториал этого числа, затем спрашивает, хотят ли они сделать еще один факториал (Y, N).Java factorial output
Он должен работать так:
- Введите номер, чтобы принять факториала: 4
- 4! = 24
- Сделайте еще один факториал (Y, N)? Y
- Повторять до N вводится
Мой вывод, как:
- Введите номер, чтобы принять факториала: "? Есть ли другой факторный (Y, N)"
4! = 1, независимо от того, поступают ли я Y или N.
Вот мой код:
import java.util.Scanner; public class factorial { public static void main (String [] args) { Scanner input = new Scanner(System.in); System.out.print("Enter a number you want to take the factorial of: "); int num = input.nextInt(); int fact = 1; System.out.printf("%d! = %d\n ", num, fact, Factorial(num, fact)); } public static int Factorial(int num, int fact) { Scanner input = new Scanner(System.in); char foo; System.out.print("Do another factorial (Y,N)?"); foo = input.next().charAt(0); for (int i = 1; i >= num; i++) { fact *= i; if (foo == 'Y') { System.out.print("Do another factorial (Y,N)?"); foo = input.next().charAt(0); continue; } else { break; } } return fact; } }
После изменения:
import java.util.Scanner;
public class factorial
{
public static void main (String [] args)
{
Scanner input = new Scanner(System.in);
System.out.print("Enter a number you want to take the factorial of: ");
int num = input.nextInt();
int fact = 1;
System.out.printf("%d! = %d\n ", num, Factorial(num, fact));
System.out.print("Do another factorial (Y,N)? ");
char foo = input.next().charAt(0);
while (foo != 'N')
{
System.out.print("Do another factorial (Y,N)? ");
foo = input.next().charAt(0);
System.out.print("Enter a number you want to take the factorial of: ");
num = input.nextInt();
System.out.printf("%d! = %d\n", num, Factorial(num, fact));
}
}
public static int Factorial(int num, int fact)
{
for (int i = 1; i <= num; i++)
{
fact *= i;
}
return fact;
}
}
выход все еще имеет некоторые проблемы :
- Введите число, чтобы принять факториал: 4
- 4! = 24
- Сделайте еще один факториал (Y, N)? Y
- Сделайте еще один факториал (Y, N)? Y
- Введите число, чтобы принять факториал: 4
- 4! = 24
- Сделайте еще один факториал (Y, N)? N
- Введите номер, чтобы принять факториала:
Как именно я бы реализовать цикл, который проверяет, ввел ли пользователь Y или N затем запрашивает у пользователя другой номер? Извините, я довольно новичок в java. – user1858350
Выяснено, как проверить, введен ли пользователь Y или N, но теперь я зациклился на том, как делать факториальные вычисления снова после того, как пользователь вводит Y – user1858350
@ user1858350. Вы можете отредактировать свой вопрос и опубликовать свой новый код в отдельном «после изменения». – dasblinkenlight