안녕하세요 코북입니다. 오늘은 팩토리얼 문제를 풀었는데, 반복문을 통해 푸는 방법과 재귀 함수를 사용해서 푸는 방법이 있었습니다.
반복문 풀이
public class Java08 {
public static void main(String[] agrs) {
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
int num = sc.nextInt();
int fact = 1; //곱해야 하므로 기본값을 1로 설정
for(int i=2; i<=num; i++)
{
fact *= i;
}
System.out.println("출력 : "+ fact);
}
}
입력한 값 만큼 반복하여 대입 연산자를 통해 값을 곱해줍니다.
재귀 함수 풀이
public class Java08_2 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.print("입력 : ");
int num = sc.nextInt();
System.out.println("출력 : " + fact(num));
}
static int fact(int n) {
if(n<=1)
{
return n;
}
else
{
return fact(n-1)*n;
}
}
}
함수 안에서 자기 자신을 다시 불러서 함수가 실행됩니다.
배운 점
재귀함수를 통한 풀이를 처음 접해봤는데, 재귀 함수에 대한 공부가 좀 더 필요할 것 같다.
'알고리즘' 카테고리의 다른 글
[Java] 가까운 거리 찾기 (1차원) (0) | 2022.02.08 |
---|---|
[Java]수열 n번째 항까지 출력 (0) | 2022.02.01 |
[Java]소인수분해 (0) | 2022.01.25 |
[Java]최대 공약수, 최소 공배수 구하기(feat.유클리드 호제법) (0) | 2022.01.23 |
[Java]1-2+3-4+...+99-100 계산 (0) | 2022.01.22 |