阶乘递归中的用户输入?

User input in Factorial Recursion?

所以我正在尝试制作一个程序,用户输入一个数字,计算机输出阶乘。我必须使用递归并有 1 个 class 和 1 个客户端。

我的class是:

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));
   }
}

这些都可以编译并且工作得很好。但是,我试图找出一种方法让用户输入数字而不是我在客户端中输入数字。请帮忙!

试试这个。

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));
   }
}

Scanner class 非常适合读取用户输入。

以下应该有效:

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));

  }
}

请注意,您不必声明新的 Factorial 对象,因为 Factorial 方法已被声明为静态的。