Menu
Coddy logo textTech

나머지 연산자

Coddy C++ 여정의 기초 섹션에 포함된 레슨 — 74개 중 17번째.

나머지 연산자 %는 나눗셈의 나머지를 구합니다. C++에서는 다음과 같은 간단한 구문으로 사용됩니다:

result = dividend % divisor;
  • dividend: 나누어지는 수입니다.
  • divisor: 피제수를 나누는 수입니다.
  • result: 나눗셈의 나머지입니다.

예를 들어:

result = 10 % 3;

여기서 10을 3으로 나눕니다. 3은 10에 세 번 들어가고 나머지는 1이 됩니다. 따라서 result는 1이 됩니다.

보통 나머지 연산(modulo)은 숫자가 짝수인지 홀수인지 확인하는 데 사용됩니다:

  • 숫자가 짝수이면, 2로 나누었을 때 나머지가 0이 됩니다.
  • 숫자가 홀수이면, 2로 나누었을 때 나머지가 1이 됩니다.

C++에서 부동 소수점 숫자(double)를 다룰 때, 나머지 연산자 %를 직접 사용할 수 없습니다. 대신 <cmath> 라이브러리의 fmod() 함수를 사용해야 합니다. 이 함수는 나머지 연산자와 비슷하게 작동하지만 소수점 정밀도를 유지합니다. 예를 들어:

#include <cmath>

double result = fmod(5.2, 2.0);
// 결과는 1.2입니다

작동 방식은 다음과 같습니다: 2.0은 5.2에 두 번 들어가고(4.0), 나머지는 1.2입니다 (5.2 - 4.0 = 1.2).

또 다른 예시:

double result = fmod(7.8, 3.5);
// 결과는 0.8입니다

나누는 수(divisor)가 피제수(dividend)보다 클 때, 결과는 피제수와 같습니다. 이는 %fmod() 모두에 적용됩니다.

5 % 10 = 5
3 % 7 = 3
fmod(2.5, 8.0) = 2.5

왜 그럴까요? 나누는 수가 0번 들어가므로, 피제수 전체가 나머지가 됩니다.

challenge icon

챌린지

초급

세 개의 변수 a (int), b (double), c (int)를 각각 9, 2.6, 11의 값으로 초기화하는 코드를 작성하세요.

그 후, 다음 변수들을 초기화하세요:

  • d (int): a2로 나눈 나머지 값을 저장합니다. 
  • e (int): a3으로 나눈 나머지 값을 저장합니다.
  • f (double): b1.5로 나눈 나머지 값을 저장합니다.
  • g (double): b3.9로 나눈 나머지 값을 저장합니다.
  • h (int): c10으로 나눈 나머지 값을 저장합니다.

결과를 확인하고 서로 다른 피제수(dividends)와 제수(divisors)가 결과에 어떤 영향을 미치는지 살펴보세요.

치트 시트

나머지 연산자 %는 나눗셈의 나머지를 구합니다:

result = dividend % divisor;

예시:

result = 10 % 3;  // 결과는 1입니다

일반적인 사용 사례 - 숫자가 짝수인지 홀수인지 확인하기:

  • 짝수: number % 2 == 0
  • 홀수: number % 2 == 1

부동 소수점 숫자의 경우, <cmath>fmod()를 사용하세요:

#include <cmath>

double result = fmod(5.2, 2.0);  // 결과는 1.2입니다
double result2 = fmod(7.8, 3.5); // 결과2는 0.8입니다

나누는 수(divisor)가 나누어지는 수(dividend)보다 크면 결과는 나누어지는 수와 같습니다. 이는 %fmod() 모두에 적용됩니다.

직접 해보기

#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;
}
quiz icon실력 점검

이 레슨에는 짧은 퀴즈가 포함되어 있습니다. 레슨을 시작해 문제를 풀고 진행 상황을 기록하세요.

기초의 모든 레슨