#12 연습문제 2 풀이
연습문제 2의 해답입니다
Table Of Contents
1. [1000] A+B
#include <stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); printf("%d", a + b); return 0; }
a, b를 입력받고, a + b를 출력했습니다.
2. [1001] A-B
#include <stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); printf("%d", a - b); return 0; }
3. [10998] A×B
#include <stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); printf("%d", a * b); return 0; }
4. [1008] A/B
#include <stdio.h> int main(void) { double a, b; scanf("%lf%lf", &a, &b); printf("%.9lf", a / b); return 0; }
강의자료에서 설명되지 않은 부분이 있어서 추가로 설명 드립니다.
이 문제에서는 다른 문제들과 달리 입력을 %lf 형식 지정자를 이용해서 double형 변수에 저장했습니다. 이는 나눗셈을 해야 하기 때문입니다.
만약 입력으로 1 3이 들어온다면, 1 / 3은 0.3333...입니다. 하지만 정수형 변수로는 이를 처리할 수 없기 때문에 실수형 변수를 이용해야 합니다.
또한, %.9ff
와 같은 문법을 볼 수 있는데, 문제의 다음 조건 때문입니다.
실제 정답과 출력값의 절대오차 또는 상대오차가
이하이면 정답이다.10^{-9}
이 말의 뜻은 절댓값(우리가 작성한 코드가 내놓은 답 - 채점 서버에서 미리 준비해놓은 답)이 0.000000001보다 작아야 한다는 뜻입니다.
하지만 %lf
로 출력하게 된다면, 컴퓨터에서는 기본적으로 소수점 아래 6자리까지만 출력해주게 됩니다. 답이 0.333333333라면, 0.333333까지만 출력하게 되는 것이죠. 이런 경우에 상대오차가
10^{-9}
소수점 아래 9번째 자리까지 출력하겠다
라고 지정해 주는 것입니다.
5. [10869] 사칙연산
#include <stdio.h> int main(void) { int a, b; scanf("%d%d", &a, &b); printf("%d\n", a + b); printf("%d\n", a - b); printf("%d\n", a * b); printf("%d\n", a / b); printf("%d\n", a % b); return 0; }
6. [18108] 1998년생인 내가 태국에서는 2541년생?!
#include <stdio.h> int main(void) { int y; scanf("%d", &y); printf("%d", y - 2541 + 1998); return 0; }
7. [10430] 나머지
#include <stdio.h> int main(void) { int a, b, c; scanf("%d%d%d", &a, &b, &c); printf("%d\n", (a + b) % c); printf("%d\n", (a % c + b % c) % c); printf("%d\n", (a * b) % c); printf("%d", (a % c * b % c) % c); return 0; }
계산 순서에 유의해주세요.
8. [2588] 곱셈
#include <stdio.h> int main() { int a, b; scanf("%d", &a); scanf("%d", &b); int hundred = b / 100; int ten = (b % 100) / 10; int one = b % 10; printf("%d\n", one * a); printf("%d\n", ten * a); printf("%d\n", hundred * a); printf("%d", a * b); return 0; }
두 번째 정수는 세 자리 수인데, 우리는 이 수를 백의 자리, 십의 자리, 일의 자리로 분리해야 합니다.
저는 각각 hundred, ten, one이라는 변수를 선언해서 그 안에 값들을 저장했습니다.