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>
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>
728x90
'JavaScript' 카테고리의 다른 글
[FrontEnd2] JS 연습문제 (대수의 법칙 _ 주사위) (0) | 2022.06.05 |
---|---|
[FrontEnd2] JS 연습문제 (객체) (0) | 2022.06.05 |
[FrontEnd2] 함수를 이용해 최대공약수, 최소공배수 구하기 (0) | 2022.05.27 |
[FrontEnd2] JS 연습문제 풀이 (중첩 반복문 2) (0) | 2022.05.24 |
[FrontEnd2] JS 연습문제 풀이 (중첩 반복문 1) (0) | 2022.05.22 |
댓글