[C/C++] 백준 #2877 4와 7(수학)
이번 문제는 접근하는 방법을 알고 있으면 쉽게 문제를 풀 수 있습니다. 문제의 링크는 다음과 같습니다.https://www.acmicpc.net/problem/2877 k번째 작은 숫자라고 했으니까, k+1의 숫자를 2진수로 변환합니다. 예를 들어서 k가 9이라면 k+1은 10이 되며, 이진수로 변환하면, \(1010_2\)가 됩니다. 그러면 처음 1을 제외하고, 1을 7로, 0을 4라 변환하면 됩니다. 결과는 474을 얻게 되겠죠. 4, 7, 44, 47, 74, 77, 444, 447, 474 이므로 우리가 원하는 결과를 얻었음을 알 수 있습니다. 왜 k+1을 했는가를 생각한다면, 전 이 문제를 맨 처음은 무조건 1이 있다고 가정했습니다. 이진수 \(1_2\)는 아무것도 없는 상태이고,..
2024. 8. 23.
[C/C++] 백준 #2436 공약수(수학)
보통 두 수가 주어지면, 최대공약수와 최소공배수를 구하는 것을 하지만, 이 문제는 최대공약수와 최소공배수가 주어지면, 그러한 최대공약수와 최소공배수를 가지는 두 수를 구하는 문제입니다. https://www.acmicpc.net/problem/2436 2436번: 공약수 첫째 줄에 두 개의 자연수가 빈칸을 사이에 두고 주어진다. 첫 번째 수는 어떤 두 개의 자연수의 최대공약수이고, 두 번째 수는 그 자연수들의 최소공배수이다. 입력되는 두 자연수는 2 이상 100,0 www.acmicpc.net 두 수 \(a, ~ b\)가 주어지면, 두 수의 최대 공약수가 \(g\)일 때, 우리는 다음과 같은 식을 얻을 수 있습니다. \[ a = ga', ~ b = gb', ~ lcm = ga' b' \] 최소공배수를 최..
2023. 5. 2.