목록문제 (388)
sm 기술 블로그
import java.util.*; import java.io.*; import java.math.BigInteger; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); StringBuilder sb = new StringBuilder(); int T = Integer.parseInt(br.readLine()); while(T!=0) { String[] sBits = br.readLine().split(" "); BigInteger N = BigInteger.valueOf(Integer.pars..
import sys input = sys.stdin.readline result = "" for _ in range(int(input())): N, M = map(int, input().split()) A, B = N, M for i in range(1, A): N *= (A-i) M *= (B-i) if(N == 0): N = M result += str(M//N) + "\n" print(result) 문제요약 이항계수를 구하라. (조합) 설명 이항계수를 푸는방법은 위와같이 반복문이 아닌 재귀함수를 사용해서도 풀 수 있다. 일단 위 방법은 예를들어 10 과 5가 들어왔다고 해보자. n은 N으로, r은 K로 생각하면 된다. 다음과 같이 값이 들어올 것이다. 이를 정리하면, 다음과 같이 나올 것이다. 즉,..
import java.util.*; import java.io.*; import java.math.BigInteger; class Main { public static void main(String[] args) throws IOException { BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); String[] sBits = br.readLine().split(" "); BigInteger N = BigInteger.valueOf(Integer.parseInt(sBits[0])); int A = Integer.parseInt(sBits[0]); BigInteger K = BigInteger.valueOf(Integer...
import sys input = sys.stdin.readline N, K = map(int, input().split()) A, B = N, K for i in range(1, B): N *= (A-i) K *= (B-i) if(K == 0): K = N print(N//K % 10007) 문제요약 이항계수를 구하고 거기에 10007을 나눈 나머지를 구하라 설명 자세한 로직설명은 아래를 참고하자 https://smhope.tistory.com/293?category=1058420 111. 11050 (이항계수 1) import sys input = sys.stdin.readline N, K = map(int, input().split()) A, B = N, K for i in range(1, B): ..