2016-02-23 2 views
1

Итак, я пытаюсь создать программу, в которой пользователь вводит число, а компьютер выводит факториал. Я должен использовать рекурсию и иметь 1 класс и 1 клиент.Пользовательский ввод в факториальной рекурсии?

Мой класс:

public class Factorial 
{ 
    public static int Factorial(int n) 
    { 
     if(n==1) 
     { 
     return 1; 
     } 
     else 
     { 
     return n*(Factorial(n-1)); 
     } 
    } 
} 

Мой клиент:

public class FactorialClient 
{ 
    public static void main() 
    { 
     Factorial n = new Factorial(); 
     System.out.println(n.Factorial(4)); 
    } 
} 

Они как компилировать и работать совершенно нормально. Тем не менее, я пытаюсь выяснить способ ввода пользователем номера вместо ввода номера внутри клиента. Пожалуйста помоги!

ответ

1

Попробуйте это.

public class FactorialClient 
{ 
    public static void main() 
    { 
     Scanner reader = new Scanner(System.in); // Reading from System.in 
     System.out.println("Enter a number: "); 
     int x = reader.nextInt(); 
     Factorial n = new Factorial(); 
     System.out.println(n.Factorial(x)); 
    } 
} 
0

Класс Scanner отлично подходит для чтения пользовательского ввода.

должно работать:

public class FactorialClient { 
    public static void main(String[] args) { 

    Scanner scanner = new Scanner(System.in); 
    int userInput = scanner.nextInt(); 
    System.out.println(Factorial.Factorial(userInput)); 

    } 
} 

Обратите внимание, что вы не должны объявить новый Факториал объект, так как метод Факториал был объявлен статическим.

Смежные вопросы