코딩/백준 문제 (브론즈)

[백준/15726/C언어] 이칙연산 _ 풀이

룻밤 2023. 8. 6. 23:46

https://www.acmicpc.net/problem/15726

 

15726번: 이칙연산

첫째 줄에 세 개 정수 A, B, C(1 ≤ A, B, C ≤ 1,000,000)가 주어진다. 답은 int범위를 벗어나지 않는다.

www.acmicpc.net


풀이

#include <stdio.h>
int main() {
	long long n1, n2, n3;	// 연산할 수 
	long long result1, result2;		// 결과
	scanf("%lld %lld %lld", &n1, &n2, &n3);
	
	result1 = (double)(n1 * n2) / n3;	// n1xn2를 한 후 나눌때 double형으로
	result2 = (double)(n1 / n2) * n3;	// n1/n2 과정을 double형으로 하고 곱셈

	if (result1 > result2)		// result1이 클때
		printf("%d\n", (int)result1);
	else		// result2가 클때
		printf("%d\n", (int)result2);

	return 0;
}

- 연산 변수들과 결과를 long long 으로 잡는 이유 :

세개 정수의 범위가 1000000까지 이기 때문에 연산시 int형을 넘을수 있음.

 

- result 변수들에 double형으로 감싸는 이유:

ex) 2 4 5 를 입력

((double)2/4)*5 = 2.5

(2/4)*5 = 0