javascript

javascript_함수(quiz01~08)_22.04.29(day08)

양빵빵 2022. 4. 29. 16:06
/* Q1)
    2개의 정수를 전달받아 그 중 작은 값을
    반환하는 함수 min2를 작성하고

    브라우저 입력을 통해 2개의 숫자를 입력받아
    함수를 통해 작은값을 출력하세요.
*/
 
== 1번 정답
// 함수부
function min2(n1,n2) {
    if(n1 < n2) {
        return n1;
    } else {
        return n2;
    }

}

// 실행부
var first = +prompt('첫번째 정수:');
var second = +prompt('두번째 정수:');

alert(`둘 중 작은 수: ${min2(first,second)}`);
 
 
/* Q2)
n개의 정수를 전달받아 그 중 최소값을 반환하는 함수 min을 정의하고

사용자에게 반복해서 숫자들을 입력받은 후
min을 호출하여 최소값을 출력하세요.

입력을 그만둘때는 '그만'이라고 입력하도록
코드를 작성하세요
 
*/
== 2번 정답
 
// ===================== ↓ 정답 =========== //

/*function min(numbers) {
    var minNum = numbers[0];
    for (var n of numbers) {
        if (n < minNum) {
            minNum = n;
        }
    }
    return minNum;
}

var nums = [];

while (true) {
    var inputMsg = prompt('숫자를 입력: ');
    if (inputMsg === '그만') break;
    nums.push(+inputMsg);
}

var result = min(nums);
alert(result);
*/
 
 
 
/*
    Q3)
    1개의 정수를 전달받아 해당 정수의
    3제곱 값을 반환하는 함수 cube를 작성하시고

    사용자에게 숫자를 입력받은 후
    cube를 호출하여 3제곱값을 출력하세요.
*/
 
== 3번 정답
function cube(n1) {
    return n1 ** 3;
}

var inputNum = +prompt('3제곱할 숫자를 입력하세요: ');
var result = cube(inputNum);
alert(result);
 
 
 
/*
    Q4)
    n개의 정수와 탐색할 정수를 전달받아
    탐색할 정수가 n개 중에 있다면
    몇번째에 있는지 반환하고
    없다면 -1을 반환하는 함수 search()를
    작성하고 아래 그림과 같이 출력하세요.
*/
 
== 4번 정답
// ===================== ↓ 정답 =========== //

/*
function search(arr, targetNum) {
    for (var i = 0; i < arr.length; i++) {
        if (arr[i] === targetNum) {
            return i;
        }
    }
    return -1;
}

function search2(arr, targetNum) {
    return arr.indexOf(targetNum);
}

//==========================

var numbers = [99, 33, 44, 100, 3, 67];

var result = search(numbers, 3);
console.log(`result: ${result}`);
*/
 
 
/*
    Q5)
    n개의 정수와 탐색할 정수를 전달받아
    탐색할 정수가 n개 중에 있다면
    몇개 있는지 반환하고, 각각 몇번 인덱스에
    있는지 아래 그림과 같이 출력하세요.
   
*/
 
== 5번 정답

function search(arr = [], targetNum) {
    if (arr.includes(targetNum)) {
        var count = 0;
        for (var i=0; i < arr.length; i++) {
            if (arr[i] === targetNum)
                count++;
        }
        var idxNum = [];
        for (var i=0; i < arr.length; i++) {
            if (arr[i] === targetNum)
                idxNum.push(i)
        }
       
    }    

    return (`${targetNum}${count}개 있습니다.\n ${idxNum}`)
}


nums = [1,5,1,7,1];

result = search(nums,1);
console.log(result);



/*
function findNumberCount(arr, targetNum) {
    var idxArr = []; //인덱스위치들을 저장할 배열
    for (var i=0; i< arr.length; i++) {
        if (arr[i] === targetNum) {
            idxArr.push(i);
        }
    }
    return idxArr;
}

// 배열의 개수를 알려주는 함수
function count(arr) {
    return arr.length;
}

var numbers = [9, 9, 10, 33, 9, 44, 9, 44, 11, 9];

var idxArray = findNumberCount(numbers, 9);
console.log(idxArray);
console.log(`타겟의 개수: ${count(idxArray)}`);
*/
 
 
 
/*
    Q6)
    1. 1개의 정수 n을 전달받아 n의 약수들을 출력하고
    약수의 개수를 리턴하는 함수 calcDivisor를 정의하세요.
    2. 약수의 출력은 함수 내부에서 이뤄져야 합니다.

    - 호출 예시 : calcDivisor(10);

    10의 약수: 1 2 5 10
    10의 약수의 개수: 4개
   
   
*/
 
== 6번 정답
/*

function calcDivisor(num) {
    var divisorArr = []; //약수 저장 배열
    for (var i = 1; i <= num; i++) {
        if (num % i === 0) {
            divisorArr.push(i);
        }
    }
    console.log(`${num}의 약수: [${divisorArr}]`);
    return divisorArr.length;
}

var count = calcDivisor(10);
console.log(`약수의 개수: ${count}개`);
*/
 
/*
    Q7)
    1. n개의 정수를 전달받아 해당 정수들의
     총합과 평균 2개를 반환하는 함수
     calcTotalAndAvg를 작성하고 결과를 출력하세요.

    - 호출 예시 : calcTotalAndAvg(10, 20, 30);

    - 출력 예시 : 전달된 숫자 총합: 60, 평균: 20
   
   
*/
== 7번 정답
 
/*
function calcTotalAndAvg(numbers) {
    var total = 0;
    for (var n of numbers) {
        total += n;
    }
    var avg = total / numbers.length;
    return {
        total: total,
        avg: avg
    };
}
*/
 
 
 
    /* Q08)
        1. 키(cm)와 몸무게(kg)을 인수로 전달받아
       
        2. bmi지수를 계산하여 반환함과 동시에

        3. bmi가 25.0이상이면 "당신은 과체중입니다."
        18.5이하면 "당신은 저체중입니다."
        나머지는 "당신은 정상체중입니다."를 출력하는
        calcBMI라는 함수를 정의하고 호출하세요.
       
        4. 체중범위 출력은 함수 내부에서 작성되어야 합니다.

        # bmi 계산식 : 몸무게(kg) / (키(m) * 키(m))
       
        - 호출 예시 : calcBMI(178.4, 78.2);
   
        - 출력 예시:
            키 -> 178.4cm, 체중-> 78.2kg의 체질량지수는: 24.57입니다"
*/
 
== 8번 정답
function calcBMI(cm, kg) {
    var m = cm / 100;
    var bmi = kg / (m * m);
    if (bmi >= 25) {
        console.log('당신은 과체중입니다.');
    } else if (bmi <= 18.5) {
        console.log('당신은 저체중입니다.');
    } else {
        console.log('당신은 정상체중입니다.');
    }
    return bmi;
}


//원하는 자리수만큼 반올림해주는 함수
function round(number, pos) {
    return Math.round(number * 10 ** pos) / 10 ** pos;
}


var myBmi = calcBMI(178.4, 78.2);
console.log(`체질량지수: ${round(myBmi, 2)}`);