다른 명언
728x90
반응형
문제 1) 사용자가 프롬프트 창에 숫자를 입력했을 때 그 숫자를 함수로 넘겨주고, 함수에서는 숫자가 양수인지, 음수인지, 또는 0인지 판단해서 알림 창에 보여주는 프로그램을 작성해 보세요.
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);
}
함수 isPositive(n)은 매개변수 n을 입력 받아, if-else 조건문을 사용하여 n이 양수, 음수, 또는 0인지를 판별합니다.
- n이 0보다 크면 alert() 함수를 사용하여 "n은 양수입니다."라는 메시지를 출력합니다.
- n이 0보다 작으면 alert() 함수를 사용하여 "n은 음수입니다."라는 메시지를 출력합니다.
- n이 0이면 alert() 함수를 사용하여 "n은 0입니다."라는 메시지를 출력합니다.
그리고, const 키워드를 사용하여 number라는 변수를 선언하고, prompt() 함수를 사용하여 사용자로부터 입력을 받아 정수형으로 변환하여 number에 할당합니다. 이 때, parseInt() 함수를 사용하여 문자열을 정수로 변환합니다.
마지막으로, isNaN() 함수를 사용하여 number가 NaN이 아닌 숫자일 경우에만 isPositive(number) 함수를 호출합니다.
따라서 이 코드는 사용자가 숫자를 입력할 때마다, 그 숫자가 양수, 음수, 또는 0인지를 판별하여 메시지를 출력하는 함수를 실행하는 프로그램입니다.
실행되는 화면입니다.
문제 2) 2개의 숫자를 입력받아 두 수의 최대공약수를 구하는 함수를 작성하고 테스트해 보세요. 예를 들어 4와 12의 최대공약수는 4가 됩니다. 즉, 두 수 모두 니누어떨어지는 수 중에서 가장 큰 값이 최대 공약수입니다.
function getGCD(n, m) { //GCD는 최대공약수의 약자입니다.
let max = n > m ? n : m; //삼항 연산자 표현 방법입니다. n이 m보다 크면 n아니면 m
let GCD = 0;
for (let i = 1; i <= max; i++) {
if (n % i === 0 && m % i === 0) { //&&연산자는 양쪽 둘 다 true여야만 true입니다.
GCD = i; // 최대공약수
}
}
return GCD;
}
document.write(`308과 20의 최대공약수 : ${getGCD(308, 20)}`);
document.write(`45과 38의 최대공약수 : ${getGCD(45, 38)}`);
- n과 m 중 더 큰 값을 max 변수에 저장합니다.
- GCD 변수를 0으로 초기화합니다.
- 1부터 max까지 반복문을 돌면서, n과 m 모두에서 현재 숫자 i로 나누어 떨어지는지 검사합니다.
- 만약 n과 m 모두에서 현재 숫자 i로 나누어 떨어진다면, GCD 변수에 i 값을 저장합니다.
- 반복문이 끝난 후, GCD 변수의 값을 반환합니다.
따라서 예시로 주어진 getGCD(308, 20)은 308과 20의 최대공약수를 구하는 것입니다. 이를 위해서 함수는 다음과 같이 동작합니다.
- max 변수에 308을 저장합니다.
- GCD 변수를 0으로 초기화합니다.
- 1부터 308까지 반복문을 돌면서, 308과 20 모두에서 현재 숫자 i로 나누어 떨어지는지 검사합니다.
- i가 4일 때, 308과 20 모두에서 나누어 떨어집니다. 따라서 GCD 변수에 4를 저장합니다.
- 반복문이 끝나면, GCD 변수의 값인 4를 반환합니다.
따라서 출력 결과는 308과 20의 최대공약수 : 4가 됩니다.
마찬가지로, getGCD(45, 38)은 45와 38의 최대공약수를 구하는 것입니다. 이를 위해서 함수는 다음과 같이 동작합니다.
- max 변수에 45을 저장합니다.
- GCD 변수를 0으로 초기화합니다.
- 1부터 45까지 반복문을 돌면서, 45과 38 모두에서 현재 숫자 i로 나누어 떨어지는지 검사합니다.
- i가 1일 때, 45과 38 모두에서 나누어 떨어지지 않습니다. 따라서 GCD 변수의 값인 0을 유지합니다.
- 반복문이 끝나면, GCD 변수의 값인 0을 반환합니다.
따라서 출력 결과는 45과 38의 최대공약수 : 0이 됩니다.
다음은 실행 화면 입니다.
728x90