Home 1부터 n까지 (역순)출력하기 재귀함수
Post
Cancel

1부터 n까지 (역순)출력하기 재귀함수

말그대로 정수 n이 입력을 받으면 1부터 n까지 출력하는 재귀 함수를 만드는 것입니다.

재귀는 말그대로 자기 자신을 호출 하는것인데 주로 파보나치수나 팩토리얼등에서 코드가 간결하게 만들어지기 때문에 사용합니다.

다만 잘못하면 무한루프에 빠지거나 가독성이 떨어지는 단점이 있습니다.

1
2
3
4
5
6
7
8
9
10
n = int(input())

def recur(num):
    if num != n:
        print(num)
        return recur(num+1)
    else:
        print(n)
        
recur(1)

파이썬을 하면서 한가지 착각하는 점은 기본적으로 변수를 선언할때 C++같은 언어처럼 자료형을 사용하지 않고 느슨한 상태로 있다보니 여기서 오는 오류가 제법됩니다.

그러니 정수가 들어온다고 조건이 주어지면 자료형은 정수라고 명확하게 자료형을 정의하는 것이 필요합니다.

실제로 위 코드에서 input()을 받을때 int라고 선언을 안하면 에러가 납니다.

코드는 간단합니다. 어떤 숫자에서 주어진 숫자 n이 아니라면 출력을하고 1을 더한 값을 재귀호출을 하게 됩니다.

그러면 1이 증가한 숫자는 함수로 들어가서 비교를 하고 다시 함수를 불러오고.. 쭉 반복을합니다.

1
2
3
4
5
6
7
8
9
10
n = int(input())

def recur(n):
    if n != 1:
        print(n)
        return recur(n-1)
    else:
        print(n)
        
recur(n)

역순출력도 어렵지 않습니다. 반대로 n부터 시작을하고 1이 될때까지 1씩 빼주면 됩니다.

This post is licensed under CC BY 4.0 by the author.

Comments powered by Disqus.