728x90
1. 문제
https://codeup.kr/problem.php?id=2112
[출처 : 코드업(https://codeup.kr/)]
이번 문제는 A B 형식으로 입력 받은 행 중 A^B가 가장 큰 행의 번호를 출력하는 문제입니다.
참고로 이번 문제는 직접 A^B를 구하면 엄청 힘들어서(char 배열로 구할수는 있음)
수학시간에 배웠던 "log"함수를 이용하여 계산하면 쉽게 비교할수 있습니다.
2. 풀이방법
STEP 1. log(A^B) = B*log(A)
3. 해답
#include <stdio.h>
#include <math.h>
int main()
{
int n;
int j = 0;
double a, b;
double tmp = 0.0;
scanf("%d", &n);
for (int i = 0; i < n; i++) {
scanf("%lf %lf", &a, &b);
// log를 이용하여 비교
if ((b*log(a)) > tmp) {
tmp = (b * log(a));
j = i;
}
}
printf("%d", j + 1);
return 0;
}
'프로그래밍 > CodeUp' 카테고리의 다른 글
CodeUp[Q_2604] : 실수를 기약 분수로 변환 (0) | 2020.04.02 |
---|---|
CodeUp[Q_2115] : 팩토리얼 계산 (Large) (0) | 2020.03.30 |
CodeUp[Q_2042] : 소화기가 필요해 (0) | 2020.03.28 |
CodeUp[Q_2041] : 회원들의 나이 차이 (0) | 2020.03.27 |
CodeUp[Q_2035] : 앉을 수 있는 자리 (0) | 2020.03.26 |