Programming/JUNGOL : 정보올림피아드&알고리즘
[JUNGOL 함수3]:587~232
토토모에요
2021. 8. 14. 14:29
728x90
반응형
JUNGOL 정보올림피아드&알고리즘에서 학습용으로 문제를 가져왔습니다. 문제가 될 시 수정, 삭제하겠습니다.
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
반응형