所以我正在尝试创建一个程序,用户输入一个数字,然后计算机输出阶乘。我必须使用递归并拥有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));
}
}
这些都编译和工作完全没问题。但是,我试图找出一种方法让用户输入数字,而不是输入客户端内的数字。请帮忙!
答案 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。