WEB/Algorithm
백준 27433
hwahaha
2023. 11. 22. 10:22
https://www.acmicpc.net/problem/27433
27433번: 팩토리얼 2
0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오.
www.acmicpc.net
<문제 요약>
0~20 사이의 N!을 구하는 문제
<문제풀이>
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
int n=Integer.parseInt(br.readLine());
System.out.println(factorial(n));
}
static int factorial(int a){
if(a==1|a==0) return 1;
return a*factorial(a-1);
}
}
결과는 ,,
엥 뭐지 ???? 하다가 위의 코드로 20을 넣으니까
바로 long으로 바꿨다.
int 범위 : -2,147,483,648 ~ 2,147,483,647
long 범위: -9,223,372,036,854,775,808 ~ 9,223,372,036,854,775,807
20! :
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
public class P27433 {
public static void main(String[] args) throws IOException {
BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
long n=Long.parseLong(br.readLine());
System.out.println(factorial(n));
}
static long factorial(long a){
if(a==1|a==0) return 1;
return a*factorial(a-1);
}
}
바꿔주니 쉽게 통과했다!
문제 풀 때는 조건을 항상 잘 봐야한다