[Daily Coding] _modulo

fejigu·2022년 8월 10일
1

알고리즘 & 자료구조

목록 보기
15/24


문제

두 수(num1, num2)를 입력받아, num1를 num2로 나눈 나머지를 리턴해야 합니다.

입력

인자 1 : num1
number 타입의 정수 (num1 >= 0)
인자 2 : num2
number 타입의 정수 (num2 >= 0)

출력

number 타입을 리턴해야 합니다.

주의 사항

나눗셈(/), 나머지(%) 연산자 사용은 금지됩니다.
0은 어떤 수로 나누어도 나머지가 0입니다.
어떤 수도 0으로 나눌 수 없습니다. 이 경우 'Error: cannot divide by zero'를 리턴해야 합니다.

입출력 예시

let output = modulo(25, 4);
console.log(output); // --> 1

💻 코드 작성

//0인 경우, 'Error: cannot divide by zero'를 리턴
//나눗셈 연산자 말고 뺄셈으로 표현
function modulo(num1, num2) {
if (num2 === 0) {
    return 'Error: cannot divide by zero';
  }
 while (num1 >= num2) {
    num1 = num1 - num2;
  }
  return num1;
}

→ 나눗셈(/), 나머지(%) 연산자 사용이 금지될 때,
어떻게 표현해야할까 아래와 같은 과정으로 고민했다

1) num1 > num 2라고 가정
num1 = 9, num2 = 2 라고 가정
9-2=7
7-2=5
5-2=3
3-2=1
최종 num1=1
이 값은 num1을 num2로 나눴을 때의 나머지와 동일

2) num1 = 8, num2 =3 라고 가정
8-3=5
5-3=2
최종 num1=2
이 값은 num1을 num2로 나눴을 때의 나머지와 동일

3) num1 = 2, num2 =2 라고 가정
2-2=0
이 값은 num1을 num2로 나눴을 때의 나머지와 동일

profile
console.log(frontendjigu( ☕️, 📱); // true

0개의 댓글