문제
두 수(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로 나눴을 때의 나머지와 동일