“ 지연되는 프로젝트에 인력을 더 투입하면 오히려 더 늦어진다. ”
- Frederick Philips Brooks
Mythical Man-Month 저자
728x90
문제 01. 숫자를 함수로 넘겨주고, 숫자에서 양수,음수,0 판단하기
사용자가 프롬포트 창에 숫자를 입렸했을 때 그 숫자를 함수로 넘겨주고, 함수에서는 숫자가 양수인지,음수인지, 또는 0인지 판단해서 알림창에 보여주는 프로그램을 작성하는 문제입니다.
<길라잡이>
- 숫자를 받아서 양수,음수,0을 판단하고 알림 창에 표시하는 함수를 선언합니다.
- parselnt()함수를 사용해 프롬프트 창에 입력한 내용을 숫자로 변환합니다.
- 프롬포트 창에 입력한 내용이 숫자가 아니면 parselnt() 함수는 NaN로 변환합니다.
- 반환 값이 숫자일 경우에만 함수를 실행 합니다.
function isPositive(n) {
if (n > 0) {
alert(`${n}은 양수입니다.`); //매개 변수 함수를 이용해서 if문을 실행함
} else if (n < 0) {
alert(`${n}은 음수입니다.`);
} else {
alert(`${n}은 0입니다.`);
}
}
const number = parseInt(prompt('숫자를 입력하세요.'));
if (!isNaN(number)) { //숫자인지 문자인지 (매개변수 함수가 숫자인지 문자인지 구분하는 함수 )
isPositive(number); //양수인지 음수인지
}
//상수 넘버를 받은 후 매개변수 함수를 이용해서 숫자인지 문자인지 양수인지 음수인지 구분
참고사항
- parselnt () 함수 : 숫자와 문자열이 조건식에 있을 경우 정수 부분만 숫자로 변환해 주는 함수 입니다. 하지만 문자열의 첫 부분이 숫자가 아닐 경우 'NaN'으로 반환됩니다.
- !isNaN () 함수: 숫자인지 아닌지를 판별하는 함수 입니다. 숫자이면 false를 반환해 주고 숫자가 아니면 ture를 반환시켜 줍니다.
See the Pen Untitled by younajeong (@younajeong) on CodePen.
문제 02. 2개의 숫자를 입력 받아 최대 공약수를 구하는 함수를 작성합니다.
2개의 숫자를 입력받아 두 수의 최대 공약수를 구하는 함수를 작성하고 테스트해 보세요. 예를 들어 4와 12의 최대 공약수는 4가 됩니다. 즉, 두 모두 나누어 떨어지는 수 중에서 가장 큰 값이 최대공약수 입니다.
<길라잡이>
- 주어진 두 수 중에서 어떤 수가 큰 수인지 확인합니다.
- 두 수가 모두 나누어 떨어져야 하므로 두 수 중에서 큰 수 까지 반복하면서 작은 수도 나누어 떨어지고, 큰 수도 나누어 떨어지는 숫자를 찾습니다.
- 찾을 떄마다 변수에 할당합니다. 반복이 모두 끝나면 변수에는 가장 마지막에 할당된 약수만 남게 됩니다.
function getGCD(n, m) {
let max = n > m ? n : m; //n과 m이 큰지 확인후 작은걸 max값으로 받아옵니다.
//max값 풀이
if(n > m ){
max = n;
}else{
max=m;
}
let GCD = 0;
for (let i = 1; i <= max; i++){ //max가 i보다 커야함
if (n % i === 0 && m % i === 0){
GCD = i; // 최대공약수
}
// i 값이 1부터 입력받은 두수 중 큰수까지 반복합니다.
// n 과 m을 동시에 나눌때 나머지가 0 인 경우의 수를 gcd에 넣는다
//gcd는 i 값이들어가며 위 조건에 해당할때 새로운 i값을 계속 받는다.
}
//console.log("GCD__"+GCD)
return GCD;
//리턴 함수이기 때문에 최대 공약수 GCD를 리턴받는다.
console.log(`7과 70의 최대공약수 : ${getGCD(7,70)}`);
console.log(`5와 10의 최대공약수 : ${getGCD(5, 10)}`);
See the Pen Untitled by younajeong (@younajeong) on CodePen.