- 제출방법 : 작성한 코드를 ‘hw3.scala’라는 이름으로 저장한 후 아래 출력 화면을 캡쳐한 이미지와 함께 압축하여 ‘학번_hw3.zip’ 로 저장하세요. 압축된 파일을 이루리 과제 게시판에 업로드하면 됩니다.
- 제출기한 : 4월 22일 수요일 11:59pm
과제 진행 시 어려운 점이 있으면 이루리 게시판을 이용해 질문하세요. 게시판을 통해 하기 어려운 질문이라면 아래 조교의 이메일을 통해 문의하시기 바랍니다.
조교: 문선아(moonsun5319@kangwon.ac.kr)
- 정수 $n$을 입력받아 $1$부터 $n$까지의 합을 구하는 함수 sum을 작성하세요. 단, 공식을 사용하지말고 자기호출 함수로 작성하세요.
// 입력 n은 0보다 큰 정수라고 가정합니다.
def sum(n: Int): Int = {
// 자기호출 함수를 사용하여 계산합니다.
}
println("** p1 **")
println(sum(100))
출력 예시:
- 숫자 $n$을 입력 받아 $n!$을 계산하는 팩토리얼 함수를 작성하세요. 단, 자기호출 함수로 작성하세요.
// 입력 n은 0보다 큰 정수라고 가정합니다.
def fac(n: Int): Int = {
// n이 1이면 1로 출력합니다
// 그렇지 않으면 재귀함수를 사용하여 계산합니다.
}
println("** p2 **")
println(fac(9))
출력 예시:
- 피보나치 숫자를 출력하는 함수를 작성하세요. 단, 공식을 사용하지말고 자기호출 함수로 작성하세요.
// 입력 n은 0보다 큰 정수라고 가정합니다.
def fib(n: Int): Int = n match {
// n 이 1 또는 2면 1을 출력합니다.
// n이 3 이상인 경우에는
}
println("** p3 **")
println(fac(10))
출력 예시:
- 최대 공약수를 계산하는 함수를 작성하세요. 단, 자기호출 함수로 유클리드 호제법을 이용하여 작성하세요.
// 입력 m과 n은 0 이상이고 m+n은 0보다 크다고 가정합니다.
def gcd(n: Int, m: Int): Int = {
// 작은 값과 큰 값을 먼저 출력합니다.
// 유클리드 호제법을 사용하여 자기호출 함수로 계산하세요
}
println("** p4 **")
println(gcd(15,20))
출력 예시:
- 정수 리스트에서 가장 큰 값을 찾아내는 함수를 작성하세요. 자기호출 함수로 작성하세요.
// 입력 list는 List(3, 4, 14, 7, 2)와 같은 형태의 정수 리스트라고 가정합니다.
def max(list: List[Int]): Int = {
// 정수 리스트에서 가장 큰 값을 반환하는 자기호출 함수를 작성하세요.
// 빈 리스트를 입력받으면 0을 반환하세요.
}
println("** p5 **")
println(max(x))
출력 예시: