나머지 연산자
Coddy C++ 여정의 기초 섹션에 포함된 레슨. 74개 중 17번째.
나머지 연산자 %는 나눗셈의 나머지를 구합니다. C++에서는 간단한 구문으로 사용합니다.
result = dividend % divisor;- dividend: 나누어지는 수.
- divisor: 나누는 수.
- result: 나눗셈의 나머지.
예를 들면:
result = 10 % 3;여기서 10을 3으로 나눕니다. 3은 10에 세 번 들어가고 나머지는 1입니다. 따라서 result는 1이 됩니다.
보통 모듈로 연산은 숫자가 짝수인지 홀수인지 확인하는 데 사용됩니다:
- 숫자가 짝수이면 2로 나눴을 때 나머지가 0입니다.
- 숫자가 홀수이면 2로 나눴을 때 나머지가 1이며, 숫자가 음수이면 -1입니다.
C++에서 부동소수점 수(배정밀도 실수)를 다룰 때는 모듈로 연산자 %를 직접 사용할 수 없습니다. 대신 <cmath> 라이브러리의 fmod() 함수를 사용해야 합니다. 이 함수는 모듈로 연산자와 비슷하게 작동하지만 소수점 정밀도를 유지합니다. 예를 들면 다음과 같습니다.
#include <cmath>
double result = fmod(5.2, 2.0);
// result는 1.2입니다작동 방식은 다음과 같습니다. 2.0은 5.2에 두 번 들어가며(4.0), 나머지는 1.2입니다(5.2 - 4.0 = 1.2).
또 다른 예:
double result = fmod(7.8, 3.5);
// result는 0.8입니다제수가 피제수보다 크면 결과는 피제수와 같습니다. 이는 %와 fmod() 모두에 적용됩니다.
5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5왜 그럴까요? 제수는 0번 들어가므로 피제수 전체가 나머지가 됩니다.
챌린지
초급세 개의 변수 a (int), b (double), c (int)를 각각 9, 2.6, 11 값으로 초기화하는 코드를 작성하세요.
그런 다음 다음 변수들을 초기화하세요.
d (int)는a를2로 나눈 나머지를 저장합니다.e (int)는a를3으로 나눈 나머지를 저장합니다.f (double)는b를1.5로 나눈 나머지를 저장합니다.g (double)는b를3.9로 나눈 나머지를 저장합니다.h (int)는c를10으로 나눈 나머지를 저장합니다.
결과를 확인하고 피제수와 제수가 달라지면 결과에 어떤 영향을 주는지 살펴보세요.
직접 해보기
#include <iostream>
#include <cmath>
int main() {
// 아래에 코드를 입력하세요
// 아래 줄을 변경하지 마세요
std::cout << "a = " << a << std::endl;
std::cout << "b = " << b << std::endl;
std::cout << "c = " << c << std::endl;
std::cout << "d = " << d << std::endl;
std::cout << "e = " << e << std::endl;
std::cout << "f = " << f << std::endl;
std::cout << "g = " << g << std::endl;
std::cout << "h = " << h << std::endl;
return 0;
}이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.
기초의 모든 레슨
직접 연습해 보세요: 온라인 C++ 컴파일러