반응형
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);
}
}
반응형
'프로그래밍 공부 > java' 카테고리의 다른 글
[JAVA] 다차원(2차원) 배열 - 정방형 배열 / 비정방형 배열 (0) | 2022.12.05 |
---|---|
[JAVA] 키보드 / 마우스 조작 클래스 Robot (0) | 2022.12.04 |
[JAVA] 배열 선언 및 생성 (2) | 2022.12.01 |
[Java] 이것이 자바다 4장 확인 문제 6 : Scanner의 nextLine()을 사용하여 코드 작성하기 (0) | 2022.11.30 |
[Java] 이것이 자바다 4장 확인 문제 5 : for문을 이용해서 다음과 같이 *을 출력하는 코드 작성해보세요. (0) | 2022.11.30 |