문제출처: https://www.acmicpc.net/problem/11312
문제
무엇이든 덮어버리는 것을 좋아하는 지은이는 한변의 길이가 A인 정삼각형을 한변의 길이가 B인 정삼각형으로 완전히 덮어 버리고자 한다.
두개의 정수 A, B 가 주어지고, B ≤ A 이고, A를 B로 나눌수 있을때, 한 변의 길이가 A인 정삼각형을 완전하게 덮기 위한, 한변의 길이가 B인 정삼각형의 개수를 구하라.
입력
첫째 줄에 테스트 케이스의 개수 T가 주어진다. (T ≤ 1000)
각각의 테스트 케이스는 한줄로 이루어져 있으며 두개의 정수 A, B 가 (1 ≤ B ≤ A ≤ 1,000,000, B|A) 주어진다.
출력
각 테스트 케이스마다 한변의 길이가 A인 정삼각형을 완벽하게 덮을 수 있는 한변의 길이가 B인 정삼각형의 최소 개수를 출력한다.
풀이
규칙찾기문제입니다. 노트에 알고리즘을 설계하고 그것을 소스코드로 구현하는 능력을 기르기 위해 일부러 노트에 카테고리명을 노트에풀기라고 지었습니다.
규칙을 찾아볼까요? (그려보면 암) 2 1 일 때 답=4, 3 1 일때 답=9, 4 1 일때 답=16 입니다. 따라서 b가1일때 정답은 a^2이죠. 그리고 문제조건에의해 a%b=0이어야하므로 4 2일때를보면 4, 그리고 6 2 일 때를보면 9, 6 3일때는 4입니다. 결국 정답은 (a/b)^2가됩니다. 주의할것은 int형범위를 넘길 수 있으므로 longlong형으로 정답을 출력해야합니다.
코드
#pragma warning(disable:4996) #include<iostream> using namespace std; int main() { int t; long long a, b; scanf("%d", &t); for (int i = 0; i < t; i++) { scanf("%lld%lld", &a, &b); printf("%lld\n", a / b * a / b); } }
결과
'문제풀이(BOJ) > 규칙찾기' 카테고리의 다른 글
[백준 1551] 수열의 변화 (0) | 2020.01.03 |
---|---|
[백준 10996] 별 찍기- 21 (0) | 2020.01.02 |
[백준 1834] 나머지와 몫이 같은 수 (0) | 2019.12.13 |
[백준 1964] 오각형,오각형,오각형... (0) | 2019.12.12 |
[백준 1748] 수 이어 쓰기1 (0) | 2019.12.06 |