0보다 크거나 같은 정수 N이 주어진다. 이때, N!을 출력하는 프로그램을 작성하시오. 수학적 개념인 팩토리얼을 코드로 구현하는 문제였다. Answer 1) for(int i = N; i >= 1; i--) { result *= i; } 1부터 곱해가며 N까지 누적곱해도되지만, 여기서는 N부터 1까지 1씩 감소시키며 result에 누적곱해주었다. 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 Buffer..
i팩토리얼 (i!)은 1부터 i까지 정수의 곱을 의미합니다. 예를들어 5! = 5 * 4 * 3 * 2 * 1 = 120 입니다. 정수 n이 주어질 때 다음 조건을 만족하는 가장 큰 정수 i를 return 하도록 solution 함수를 완성해주세요. Try 1) int answer = 0; int temp = 1; int max = 0; // 1부터 n까지 올라가는 팩토리얼을 검사 for(int i = 1; i = 1; j--) { // temp 라는 변수에 j를 곱해서 팩토리얼 값을 저장함 temp *= j; // 이 팩토리얼 값이 n보다 커지는 순간 max에 값을 저장하고 break // max에 저장할때는 넘은 시점에서 판단되기때문에 넘기 전 시점을 판단하기 위해서 // i - 1을 해주었음 if(..
머쓱이는 구슬을 친구들에게 나누어주려고 합니다. 구슬은 모두 다르게 생겼습니다. 머쓱이가 갖고 있는 구슬의 개수 balls와 친구들에게 나누어 줄 구슬 개수 share이 매개변수로 주어질 때, balls개의 구슬 중 share개의 구슬을 고르는 가능한 모든 경우의 수를 return 하는 solution 함수를 완성해주세요. 경우의 수를 구하는 문제로, 팩토리얼을 구하는 문제이다. Try 1) // 분자의 역할 n! 구하기 int n_fac = 1; for(int i = balls; i >= 1 ; i--){ n_fac *= i; } // (n-m)! 구하기 int nm_fac = 1; for(int i = (balls - share); i >= 1 ; i--){ nm_fac *= i; } // 분모 중 ..