본문 바로가기

프로그래밍 공부/java

[JAVA] Factorial 구하기 (for문 / 재귀적 방법)

반응형

 

JAVA에서 Factorial을 구하는 방법 두 가지이다.

2개의 클래스로 나누어서 구현하고,  입력을 받기 위해 Scanner를 사용하는 방법이다.



1. for문을 사용하여 반복적 방법으로 구현.
 ❍ Factorial1 class Source code

import java.util.Scanner

  public class Factorial1 {

    int i, output=1;

    Factorial1(long x){}

    public int getUserInput(){
      System.out.print("input number : ");
      Scanner scanner = new Scanner(System.in);
      return scanner.nextInt();
    }

  public void Factorial_res(int x){
    for(i=1; i<=x; i++)
      output*=i

    System.out.print("Factorial " + x +" = " + output);
  }
}

 ❍ Factorial1_main class Source code

import java.io.*;

public class Factorial1_main {

  public static void main(String[] args) throws IOException {

    int input;

    Factorial1 fact;
    fact = new Factorial1(1);

    input = fact.getUserInput();  //수 입력받기

    fact.Factorial_res(input);
  }
}

 

 

 

2. 재귀적 함수 (recursive function)로 구현.
   ❍ Factorial1 class Source code

import java.util.Scanner;

public class Factorial2 {

  int i, j, output=1;

  Factorial2(int x){}

  public int getUserInput(){
    System.out.print("input number : ");
    Scanner scanner = new Scanner(System.in);
    return scanner.nextInt();
  }

  public int Factorial_cal(int x){
    if(x==1) return 1;
    else return x*Factorial_cal(x-1);
  }

  public void Factorial_res(int x){
    System.out.print("Factorial " + x +" = " + Factorial_cal(x));
  }
}

  ❍ Factorial2_main class Source code

import java.io.*;

public class Factoria2_main {

  public static void main(String[] args) throws IOException {

    int input;

    Factorial2 fact;
    fact = new Factorial2(1);

    input = fact.getUserInput();
   
    fact.Factorial_res(input);
  }
}

 

반응형