Factorial递归中的用户输入?

时间:2016-02-23 02:16:20

标签: java user-interface recursion factorial

所以我正在尝试创建一个程序,用户输入一个数字,然后计算机输出阶乘。我必须使用递归并拥有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));
   }
}

这些都编译和工作完全没问题。但是,我试图找出一种方法让用户输入数字,而不是输入客户端内的数字。请帮忙!

2 个答案:

答案 0 :(得分: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));
   }
}

答案 1 :(得分: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));

  }
}

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