반응형
https://www.acmicpc.net/problem/27433
27433번: 팩토리얼 2
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
문제
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 정수 N(0 ≤ N ≤ 20)이 주어진다.
출력
첫째 줄에 N!을 출력한다.
예제 입력 1
10
예제 출력 1
3628800
예제 입력 2
0
예제 출력 2
1
👉 풀이과정
오류가 10번 이상 생긴 것 같다....
도대체 코드에 이상이 없는 것 같은데 왜 틀렸다는거지???????하고 계속 살폈는데도
못 찾다가 구글링을 해보니..
자료형때문이다...
N이 10까지면 int타입으로 가능하지만, 20까지라서 long타입을 사용해야 한다.
int를 long으로 바꾸니 바로 해결됐다...
📌 제출코드
-재귀X
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
long fac = 1;
for(int i=1;i<=n;i++){
fac *= i;
}
System.out.println(fac);
}
}
-재귀O
import java.util.*;
public class Main {
public static long fac(int n){
if (n == 0) {
return 1;
}
return n * fac(n - 1);
}
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
int n = scan.nextInt();
long sum = fac(n);
System.out.println(sum);
}
}
반응형
'코딩테스트 > JAVA' 카테고리의 다른 글
| [JAVA/백준 1026번] 보물 (0) | 2023.10.24 |
|---|---|
| [JAVA/백준 5585번] 거스름돈 (0) | 2023.10.23 |
| [JAVA/백준 11047번] 동전 0 (0) | 2023.10.21 |
| [JAVA/백준 11399번] ATM (0) | 2023.10.20 |
| [JAVA/백준 9095번] 1, 2, 3 더하기 (1) | 2023.10.19 |