Winnie The Pooh Bear 자바스크립트 함수 마무리 문제 1,2

배움기록/JAVASCRIPT

자바스크립트 함수 마무리 문제 1,2

코딩은 처음이라 2023. 3. 1. 16:14

“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”

- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
반응형

자바스크립트 함수 마무리 문제 1,2

 

 

 

 

모던 자바스크립트 함수
마무리 문제 1

사용자가 프롬프트 창에 숫자를 입력했을 때 그 숫자를 함수로 넘겨주고, 함수에는 숫자가 양수인지, 음수인지, 또는 0인지 판단해서 알림 창에 보여 주는 프로그램을 작성해 보세요.

힌트!

  • 숫자를 받아서 양수, 음수, 0을 판단하고 알림 창에 표시하는 함수를 선언
  • parseInt( )함수를 사용해 프롬프트 창에 입력한 내용을 숫자로 변환
  • 반환값이 숫자일 경우에만 함수를 실행

정답

function isPositive(n) {
  if (n > 0) {
    alert(`${n}은 양수입니다.`);
  } else if (n < 0) {
    alert(`${n}은 음수입니다.`);
  } else {
    alert(`${n}은 0입니다.`);
  }
}

const number = parseInt(prompt('숫자를 입력하세요.'));
// parseInt() 는 숫자가 아닐 경우 NaN을 반환함
if(!isNaN(number)) {  // 숫자일 경우에만 실행
  isPositive(number);
}

함수를 선언하고 if문을 사용해 양수일때와 음수일때 그리고 나머지 0일때의 alert을 입력
pstseInt()함수를 사용해 창에 입력한 내용을 숫자로 변환
if문에 값이 숫자일 경우에만 실행하는 NaN을 사용

 

 

 

 

 

마무리 문제 2

2개의 숫자를 입력받아 두 수의 최대공약수를 구하는 함수를 작성하고 테스트,
예를 들어 4와 12의 최대공약수는 4가 됩니다. 즉, 두 수 모두 나누어떨어지는 수 중에서 가장 큰 값이 최대공약수입니다.

힌트!

  • 주어진 두 수 중에서 어떤 수가 큰 수인지 확인
  • 두 수가 모두 나누어 떨어져야 하므로 두 수 중에서 큰 수까지 반복하면서 작은 수도 나누어떨어지고, 큰 수도 나누어 떨어지는 숫자를 찾음
  • 찾을 때마다 변수에 할당. 반복이 모두 끝나면 변수에는 가장 마지막에 할당된 약수만 남음

정답

// 최대공약수 : Greatest Common Divisor (GCD)

function getGCD(n, m) {
  let max = n > m ? n : m;
  let GCD = 0;
  for (let i = 1; i <= max; i++) {
    if (n % i === 0 && m % i === 0) {
      GCD = i;   // 최대공약수
    }
  }
  return GCD;
}

console.log(`308과 20의 최대공약수 : ${getGCD(308, 20)}`);
console.log(`45과 38의 최대공약수 : ${getGCD(45, 38)}`);

삼항연산자를 사용해 조건식
GCD값을 0으로 지정
for문을 이용해 변수 i가 max값 보다 작거나 같아질때까지 반복
그리고 if문을 이용해 n,m값을 나누었을 떄 나머지가 0이되는 조건을 걸어 둘다 충족하는 값을 GCD로 받아 조건에 충족되는 값이 나올때까지 return문을 반복해 출력시켜 두 수의 최대공약수를 구함

반응형