[FrontEnd2] JS 연습문제 (함수)

    SMALL

    안녕하세요:) 보라해바리기입니다!

     

    오늘은 함수와 관련된 문제를 풀어보았습니다 ㅎㅎ

     

    함수 문제를 풀기에 앞서 함수에는 몇몇 중요한 개념들이 있는데요.

     

    바로 함수의 정의, 호출, 입력, 매개변수(parameter)입니다.

     

    오늘은 이 개념들을 제 방식대로 간단히 정리하고 문제를 풀어보도록 하겠습니다 :)

     

    1. 정의

    • 이 함수는 어떤 기능을 수행하고 어떤 매개변수를 필요로 하는지 등을 정리하는 과정
    • 이 과정에서 매개변수가 필요 없는 경우도 있음
    • 일반적으로 function 함수 이름 (매개변수) { 실행 코드 } 의 형식
    • function add (num1, num2) { return a + b } 

     

    2. 호출

    • 실인자 값을 넣어 함수를 실행하고자 할 때 수행하는 과정
    • var 변수이름 = 함수 이름 (매개변수) 형태로 주로 사용
    • 이 경우, document.write(변수이름, "<br>") 의 형태로 화면에 출력
    • ** 호출된 값을 변수에 따로 넣어 출력하는 이유: return한 값은 값을 가지고 있긴 하지만 출력까지는 하지 않기에!

     

    3. 입력

    • 호출을 할 때, 매개변수 자리에 들어갈 실제 값을 "입력"

     

    4. 매개변수

    • 함수 관계를 이어주는 매개체 역할을 하는 변수

    1. 값을 지정해 곱셈 출력하기 (지정된 값 : 20, 10)

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
    
            // parameter로 20, 10을 받고 이를 곱하는 함수 실행
    
            function multiple(a, b) {
                return a * b
            }
    
            var result = multiple(20, 10)
            document.write("20x10 = " + result, "<br>")
        </script>
    </head>
    <body>
        
    </body>
    </html>

    출력 결과

     

    2. 로그인 성공 여부 출력

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            //로그인 기능 만들기
            // 지정 id: hello    
            // 지정 pw: javascript1234
            function logIn(id, pw){
                if (id == "hello"){
                    if (pw == "javascript1234"){
                        return "로그인 성공!"
                    }
                    return "비밀번호를 다시 입력하세요."
                }
                else { // (id != "hello")
                if (pw == "javascript1234"){
                        return "아이디를 다시 입력하세요."
                    }
                    return "아이디와 비밀번호를 다시 입력하세요."
                }
            }
    
            var a = prompt("아이디를 입력하세요.")
            var b = (prompt("비밀번호를 입력하세요."))
    
            var result = logIn(a, b)
            document.write(result, "<br>")
    
        </script>
    </head>
    <body>
        
    </body>
    </html>

    ID, PW 둘 다 올바름
    ID 올바름, PW 잘못됨
    ID 잘못됨. PW 올바름
    ID, PW 둘 다 잘못됨

     

     

    3. 시작값과 끝값을 입력받아 그 사이의 모든 합을 출력

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
    
            var sum = 0
    
            function allSum (a, b) {
                for (var i = a ; i <= b ; i++){
                    sum += i
                }
                return sum
            }
    
            var num1 = parseInt(prompt("시작 값 입력"))
            var num2 = parseInt(prompt("끝 값 입력"))
    
            var result = allSum(num1, num2)
            document.write("총합: " + result, "<br>")
    
        </script>
    </head>
    <body>
        
    </body>
    </html>

     

    4. 정수 하나와 제곱 횟수를 입력받아 입력받은만큼 제곱한 값 출력

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
            function square(a, b) {
                return a**b
            }
    
            var num1 = parseInt(prompt("숫자를 입력하세요."))
            var num2 = parseInt(prompt("제곱 횟수를 입력하세요"))
    
            var result = square(num1, num2)
            document.write(num1 + "의 " + num2 + "승: " + result, "<br>")
    
        </script>
    </head>
    <body>
        
    </body>
    </html>

     

    5. 두 숫자를 입력받고 친화수인지 아닌지 판별

    ** 친화수란?   두 수의 쌍이 있어, 어느 한 수의 진약수를 모두 더하면 다른 수가 되는 것을 말한다.

    ex. 220과 284 => 220의 진약수 (1, 2, 4, 5, 10, 11, 20, 22, 44, 55, 110)를 모두 더하면 284가 됨!

     

    <!DOCTYPE html>
    <html lang="en">
    <head>
        <meta charset="UTF-8">
        <meta http-equiv="X-UA-Compatible" content="IE=edge">
        <meta name="viewport" content="width=device-width, initial-scale=1.0">
        <title>Document</title>
        <script>
    
            var sum = 0
    
            function amicablePair(a, b) {
                if (a>=b){
                    for (var i = 1; i < b; i++) {
                        if (b%i == 0){
                            sum+=i // b의 진약수의 합
                            continue
                        }
                        continue
                    }
    
                    if (a==sum) {
                        return a + "와 " + b + "는 친화수입니다."
                    }
                    return a + "와 " + b + "는 친화수가 아닙니다."
                } 
                else { // (a < b)
                    for (var i = 1; i < a; i++) {
                        if (a%i == 0){
                            sum+=i // a의 진약수의 합
                            continue
                        }
                        continue
                    }
                    if (b==sum) {
                        return a + "와 " + b + "는 친화수입니다."
                    }
                    return a + "와 " + b + "는 친화수가 아닙니다."
                }
            }
    
            var num1 = parseInt(prompt("첫번째 숫자를 입력하세요"))
            var num2 = parseInt(prompt("두번째 숫자를 입력하세요"))
    
            var result = amicablePair(num1, num2)
            document.write(result, "<br>")
        </script>
    </head>
    <body>
        
    </body>
    </html>

    친화수
    친화수X

    728x90

    댓글