使用用户输入打印出int方法

时间:2013-10-03 18:41:18

标签: java recursion

我试图以两种不同的方式做析因方法。第一个是迭代方法,可以很好地打印出来。我很难打印出一个int方法而不是void的递归方法。如何通过使用与迭代方式相同的输入来打印出递归方法?任何帮助深表感谢。我试图在我的主要方法中调用每个方法。

Java代码:

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
}

1 个答案:

答案 0 :(得分:1)

  

如何使用输入打印出递归方法   与迭代方式相同吗?

使用相同的方法你不能这样做。输入数字提示将以递归方式一次又一次地出现。您需要在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);
}