1) 주어진 숫자까지의 모든 숫자 더하기
// 1. for 반복문 사용
function sumTo(num) {
let sum = 0;
for (let i=1; i<=num; i++) {
sum += i;
}
return sum;
}
// 2. 재귀 사용
function sumTo(num) {
if (num === 1) return 1;
return num + sumTo(num-1);
}
// 3. 등차수열 공식 사용
function sumTo(num) {
return num * (num+1) / 2;
}
2) 팩토리얼 계산하기
function factorial(num) {
if (num === 1) return 1;
return num * factorial(num-1);
}
3) 피보나치 수 계산하기
function fib(num) {
let a = 1;
let b = 1;
for (let i=3; i<=num; i++) {
let c = a+b;
a = b;
b = c;
}
return b;
}
4) 단일 연결 리스트 출력하기
// 1. 반복문 기반
function printList(list) {
let tmp = list;
while (tmp) {
alert(tmp.value);
tmp = tmp.next;
}
}
// 2. 재귀 기반
function printList(list) {
alert(list.value);
if (list.next) {
printList(list.next);
}
}
5) 단일 연결 리스트를 역순으로 출력하기
// 1. 반복문 기반
function printReverseList(list) {
let arr = [];
let tmp = list;
while (tmp) {
arr.push(tmp.value);
tmp = tmp.next;
}
for (let i=arr.length-1; i>=0; i--) {
alert( arr[i] );
}
}
// 2. 재귀 기반
function printReverseList(list) {
if (list.next) {
printReverseList(list.next);
}
alert(list.value);
}
'Web > Javascript' 카테고리의 다른 글
[Javascript] 모던 JS 6.6 (객체로서의 함수와 기명 함수 표현식) 과제 (0) | 2022.07.08 |
---|---|
[Javascript] 모던 JS 6.3 (변수의 유효범위와 클로저) 과제 (0) | 2022.07.04 |
[Javascript] 모던 JS 5.12 (JSON과 메서드) 과제 (0) | 2022.06.28 |
[Javascript] 모던 JS 5.11 (Date 객체와 날짜) 과제 (1) | 2022.06.27 |
[Javascript] 모던 JS 5.10 (구조 분해 할당) 과제 (0) | 2022.06.27 |