※ 글쓴이는 취미로 코딩을 익혀보는 사람이라 정확하지 않은 내용을 담고 있을 수 있다 ※

 

이번에 볼 문제는 백준 10430번 문제인 나머지이다.
문제는 아래 링크를 확인하자.

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

 

10430번: 나머지

첫째 줄에 A, B, C가 순서대로 주어진다. (2 ≤ A, B, C ≤ 10000)

www.acmicpc.net

문제 자체의 풀이는 주어진 식을 그대로 계산해 출력해주는 것이라 어려울 것은 없다.

 

이 문제에서 알려주고자 하는 내용은 A%C + B%C = (A+B)%C 이지만 (A%C) * (B%C) != (A*B)%C 라는 점이다.

후자가 성립하지 않는 것은 A=2, B=2, C=4를 넣어보면 쉽게 알 수 있다. (좌변: 4, 우변: 0)

이 점은 다수의 수준 있는 modulo 연산을 사용하는 문제에서 기억해두어야 실수를 하지 않으므로 잘 기억해두자.

 

아래는 제출한 소스코드이다.

#include <iostream>
using namespace std;

int main() {
	int A, B, C; cin >> A >> B >> C;
	cout << (A + B) % C << '\n' << ((A % C) + (B % C)) % C << '\n' << (A * B) % C << '\n' << ((A % C) * (B % C)) % C;
}
728x90

'BOJ' 카테고리의 다른 글

[BOJ 10868 // C++] 최솟값  (0) 2021.05.02
[BOJ 2739 // C++] 구구단  (0) 2021.05.01
[BOJ 8393 // C++] 합  (0) 2021.05.01
[BOJ 10102 // C++] 개표  (0) 2021.05.01
[BOJ 2675 // C++] 문자열 반복  (0) 2021.05.01

+ Recent posts