1

階乗法を 2 つの異なる方法で実行しようとしています。最初のものは、印刷するのに最適な反復方法です。void ではなく int メソッドである再帰メソッドを出力するのに苦労しています。入力を反復的な方法と同じように使用して、再帰的な方法をどのように出力しますか? どんな助けでも大歓迎です。メインで各メソッドを呼び出そうとしています。

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
}
4

1 に答える 1