토토모에요 2021. 8. 14. 14:29
728x90
반응형

JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.

http://www.jungol.co.kr/

587

문제:20 이하의 자연수 N을 입력받아 재귀함수를 이용해서 문자열 “recursive”를 N번 출력하는 프로그램을 작성하시오.

입력 예

3

출력 예

recursive
recursive
recursive

code

def fun(a):
    if a>1:
        fun(a-1)
        print("recursive")
    else:
        print("recursive")


a=int(input())
fun(a)

588

문제: 자연수 N을 입력받아 재귀함수를 이용하여 N부터 1까지 차례대로 출력하는 프로그램을 작성하시오. 
N은 50이하의 자연수이다.

입력 예

5

출력 예

5 4 3 2 1

code

def fun(a):
    if a>1:        
        print(a,end=" ")
        fun(a-1)
    else:        
        print(a,end=" ")


a=int(input())
fun(a)

589

문제: 100 이하의 자연수 N을 입력받아 재귀함수를 이용하여 1부터 N까지의 합을 구하는 프로그램을 작성하시오.

입력 예

100

출력 예

5050

code

def fun(a):    
    if a<1:
        return a
    else:
        return a+fun(a-1)      


a=int(input())

print(fun(a))

592

문제: 9자리 이하의 자연수를 입력받아 재귀함수를 이용하여 각 자리 숫자의 제곱의 합을 출력하는 프로그램을 작성하시오.
( main()함수에 변수 하나, 재귀함수에 매개변수 하나만을 사용할 수 있다.)

입력 예

12345

출력 예

55

code

def fun(a):

    if a<10:
        return a*a
    else:

        return ((a%10)**2)+fun(a//10)

a=int(input())

print(fun(a))

591

문제: 첫 번째 수는 1이고 N번째 수는 (N/2)번째 수(파이썬인경우 N//2번째)와 (N-1)번째 수의 합으로 구성된 수열이 있다.
50 이하의 자연수 N을 입력받아 재귀호출을 이용하여 이 수열에서 N번째 수를 출력하는 프로그램을 작성하시오.
(1 2 3 5 7 10 13 18 …)

입력 예

8

출력 예

18

code

N=int(input())
def fun(N):

    if N<=1:
        return 1

    else:
        return fun(N//2)+fun(N-1)


print(fun(N))

232 Wrong Answer(0) 출력 순서만 오류

문제: 자연수 N을 입력받아 N이 홀수인 경우에는 1부터 N까지의 홀수를 짝수인 경우는 2부터 N까지의 짝수를 모두 출력하는 프로그램을 재귀함수로 작성하시오.

입력 예

15

출력 예

1 3 5 7 9 11 13 15

code

N=int(input())

def fun(N):
    if N<=0:
        return 0

    elif N%2==0:
        print("%d"%N,end=" ")        
        return fun(N-2)
    elif N%2==1:
        print("%d"%N,end=" ")        
        return fun(N-2)

fun(N)
728x90
반응형