두 개의 숫자를 받아 곱을 반환하지만 (*) 연산자를 사용하지 않는 함수를 작성해야 합니다.
비법 1:나누기 연산자를 두 번 사용
곱셈과 나눗셈은 서로의 역이라는 것을 알고 있으므로 어떤 숫자를 다른 숫자의 역수로 나누면 두 숫자를 곱하는 것과 같지 않을까요?
이에 대한 코드를 살펴보겠습니다 -
const a = 20, b = 45; const product = (a, b) => a / (1 / b); console.log(product(a, b));
트릭 2:로그 사용
먼저 로그의 속성을 살펴보겠습니다 -
log(a) + log(b) = log(ab)
따라서 이 로그 속성을 우리의 선에 사용합시다. 이에 대한 코드는 -
예시
const a = 20, b = 45; const product = (a, b) => { const logProduct = Math.log(a) + Math.log(b); return Math.round(Math.exp(logProduct)); }; console.log(product(a, b));
출력
둘 다에 대한 콘솔의 출력은 -
900