My Melody Kawaii

JAVASCRIPT/문제풀이

함수를 이용해서 함께 문제를 풀어봐요!

younajeong 2023. 2. 28. 19:44

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

- 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.