Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# Math.DivRem() 메서드 완벽 정리 – 몫과 나머지를 한 번에 구하기

C#의 Math.DivRem() 메서드는 두 숫자를 나누어 그 결과인 몫(quotient)을 반환하고, 나머지(remainder)out 매개변수를 통해 출력해 주는 메서드입니다. 일반적으로 몫과 나머지를 구하려면 나눗셈 연산자(/)와 나머지 연산자(%)를 각각 사용해야 하지만, 이 메서드를 활용하면 단 한 번의 호출로 두 값을 모두 얻을 수 있어 코드가 더 간결하고 효율적입니다.

구문(Syntax)

public static int DivRem(int dividend, int divisor, out int remainder);
public static long DivRem(long dividend, long divisor, out long remainder);

매개변수 설명

  • dividend : 나누어지는 수(피제수)
  • divisor : 나누는 수(제수)
  • remainder : out 매개변수로, 나눗셈의 나머지 값이 저장됩니다

첫 번째 오버로드는 int 형식을, 두 번째 오버로드는 long 형식을 지원하므로 숫자의 크기에 따라 적절한 버전을 선택하여 사용할 수 있습니다.

예제 1 : int 형식으로 사용하기

다음은 Math.DivRem() 메서드를 int 형식으로 구현한 예제입니다.

using System;
public class Demo {
    public static void Main(){
        int dividend = 30;
        int divisor = 7;
        int remainder;
        int quotient = Math.DivRem(dividend, divisor, out remainder);
        Console.WriteLine("Quotient = " + quotient);
        Console.WriteLine("Remainder = " + remainder);
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 확인할 수 있습니다.

Quotient = 4
Remainder = 2

30을 7로 나누면 몫은 4, 나머지는 2입니다. 이처럼 Math.DivRem() 메서드 하나만으로 몫과 나머지를 동시에 손쉽게 구할 수 있습니다.

예제 2 : long 형식으로 사용하기

큰 숫자를 다룰 때는 long 형식 오버로드를 사용하면 됩니다.

using System;
public class Demo {
    public static void Main(){
        long dividend = 767676765765765;
        long divisor = 7;
        long remainder;
        long quotient = Math.DivRem(dividend, divisor, out remainder);
        Console.WriteLine("Quotient = " + quotient);
        Console.WriteLine("Remainder = " + remainder);
    }
}

실행 결과

위 코드를 실행하면 다음과 같은 출력 결과를 얻을 수 있습니다.

Quotient = 109668109395109
Remainder = 2

참고 : C# 7.0 이상에서의 간결한 문법

C# 7.0부터는 out 변수를 호출 시점에 인라인으로 선언할 수 있어 코드를 더욱 짧게 작성할 수 있습니다.

int quotient = Math.DivRem(dividend, divisor, out int remainder);

또한 별도의 변수 선언 없이 몫과 나머지를 한 줄로 처리할 수 있어, 반복문 안에서 나눗셈 연산을 자주 수행하는 경우 특히 유용합니다.