출처: 백준 페이지
수정 전 코드
import java.util.Scanner;
public class b10872 {
public static void main(String[] args) {
int sum=0;
Scanner sc=new Scanner(System.in);
int num=sc.nextInt();
for(int i=0;i<num.length;i--) {
sum*=num[i];
}
}
}
일단 이 문제의 카테고리가 '재귀'였는데 나는 재귀를 구현하지 못했다.
수정 후 코드
import java.util.Scanner;
public class b10872 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n = sc.nextInt();
sc.close();
int sum=factorial(n); // factorial 재귀함수 호출. 매개변수로 n 갖는다.
System.out.println(sum);
}
public static int factorial(int n) { // factorial 함수 호출 시 매개변수가 n이었으므로 int n으로 값을 담는다.
if(n==0){ // 0!=0
return 1;
}
if(n==1) { // 1!=1
return 1;
}
return n*factorial(n-1); // 5!=5*4!, 4!=4x3!.. 같은 식으로 진행된다.
}
}