Animated Turtle

Javascript

함수를 이용한 문제를 풀어보자

훙구 2023. 3. 1. 19:17

...

728x90
반응형

함수를 이용한 연습문제

 

연습문제 1

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

 

풀이 Tip !

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

풀이

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

const number = parseInt(prompt('숫자를 입력하세요.'));

if(!isNaN(number)) {
  isPositive(number);
}

 

연습문제 2

2개의 숫자를 입력받아 두 수의 최대공약수를 구하는 함수를 작성하고 테스트해 보시오.

 

풀이 Tip !

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

풀이

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)}`);
728x90
반응형