Java 使用用户输入打印出int方法
我试着用两种不同的方式做阶乘方法。第一种是一种迭代方法,非常适合打印。我很难打印出递归方法,它是一个int方法而不是void方法。我将如何使用与迭代方法相同的输入输出递归方法?非常感谢您的帮助。我试图调用main中的每个方法 Java代码:Java 使用用户输入打印出int方法,java,recursion,Java,Recursion,我试着用两种不同的方式做阶乘方法。第一种是一种迭代方法,非常适合打印。我很难打印出递归方法,它是一个int方法而不是void方法。我将如何使用与迭代方法相同的输入输出递归方法?非常感谢您的帮助。我试图调用main中的每个方法 Java代码: import java.util.Scanner; public class Factorial { public static void main(String[] args) { System.out.println(
import java.util.Scanner;
public class Factorial
{
public static void main(String[] args)
{
System.out.println("Enter a number");
Scanner input = new Scanner(System.in);
int fact = input.nextInt();
//Call the iterative method
int ifact = iFactorial(fact);
System.out.println("The factorial iteratively is: " + ifact);
//Call the recursive method
int rfact = rFactorial(fact);
System.out.println("The factorial recursively is: " + rfact);
}
//Iterative method starts
public static int iFactorial(int fact)
{
for(int i = fact-1; i > 0; i--)
{
fact *= i;
}
return fact;
}
//Iterative method ends
//Recursive method starts
public static int rFactorial(int fact)
{
if(fact == 1)
{
return 1;
}
else
{
return fact * rFactorial(fact-1);
}
}
//Recursive method ends
}
如何使用输入输出递归方法
和迭代法一样
用同样的方法你做不到。输入数字提示将在递归方法中反复出现。您需要在main方法中分别设置以下三行
public static void main(String[] args)
{
System.out.println("Enter a number");
Scanner input = new Scanner(System.in);
int fact = input.nextInt();
//Call the iterative method
iFactorial(fact);
//Call the recursive method
rFactorial(fact);
}
如何使用输入输出递归方法
和迭代法一样
用同样的方法你做不到。输入数字提示将在递归方法中反复出现。您需要在main方法中分别设置以下三行
public static void main(String[] args)
{
System.out.println("Enter a number");
Scanner input = new Scanner(System.in);
int fact = input.nextInt();
//Call the iterative method
iFactorial(fact);
//Call the recursive method
rFactorial(fact);
}
方法意味着做一件事。你认为递归计算阶乘并获取用户输入是一回事吗?啊,那么需要做的是我需要一个方法来获取用户输入并存储它,然后在每个方法中调用该值?@Shawn是的。在
main
中获取用户输入,并将int
作为参数传递到其他两个函数中。你需要做一点重构,但不是什么大的。是的,这是一个好的开始。尝试在单独的函数中收集用户输入,或仅在main()函数中收集用户输入。然后在此基础上调用你的阶乘方法。你很接近了,只需记住你的方法返回了一个值,所以用这样的方式捕捉它:int solution=iFactorial(fact);System.out.println(“解决方案:“+解决方案”)代码>一个方法意味着做一件事。你认为递归计算阶乘并获取用户输入是一回事吗?啊,那么需要做的是我需要一个方法来获取用户输入并存储它,然后在每个方法中调用该值?@Shawn是的。在main
中获取用户输入,并将int
作为参数传递到其他两个函数中。你需要做一点重构,但不是什么大的。是的,这是一个好的开始。尝试在单独的函数中收集用户输入,或仅在main()函数中收集用户输入。然后在此基础上调用你的阶乘方法。你很接近了,只需记住你的方法返回了一个值,所以用这样的方式捕捉它:int solution=iFactorial(fact);System.out.println(“解决方案:“+解决方案”)所以我尝试了这个想法,并将方法改为int-agruments。我没有得到回应后,我改变了代码虽然。它允许我输入一个数字,然后终止。如果你不介意的话,我更新了我的代码。你在哪里打印结果?它完全按照你的要求做了,但你并没有要求它显示结果。谢谢你们,伙计们,我很确定它现在起作用了:)。即将更新要显示的代码。谢谢大家的帮助,这让我对调用方法有了更好的理解。所以我尝试了这个想法,并将方法改为int-agruments。我没有得到回应后,我改变了代码虽然。它允许我输入一个数字,然后终止。如果你不介意的话,我更新了我的代码。你在哪里打印结果?它完全按照你的要求做了,但你并没有要求它显示结果。谢谢你们,伙计们,我很确定它现在起作用了:)。即将更新要显示的代码。谢谢大家的帮助,这让我对调用方法有了更好的理解。