본문 바로가기
Python

파이썬 초급 #038 while 반복문 팩토리얼 6! 재귀 함수

by Smart Factory in 2020 2022. 2. 15.
728x90
반응형

안녕하세요. 스마트팩토입니다. 

 

1. while 반복문 factorial

가.  factorial
- 재귀함수 - 반복하여 연산하다라는 의미로 해석
- 어떤 일을 하는 함수를 만들었을때 그 함수 안에서 자기 자신을 다시 불러서 함수가 실행되도록 하는 것

 수학적으로 6! 은 6*5*4*3*2*1  을 구하는 것

단순하게 생각해서 코드를 만들어보겠습니다. 

코드를 보면서 알아보겠습니다. 

 

num=int(input("숫자를 입력하세요. 입력:"))
n=1
result=num
c=num-1

계산되는 과정을 보기 위해서  변수설정을  여러개로 했습니다. 

num은 입력 받는 숫자. 그 수보다 작아지는 수가 c 로 변수를 설정하고,  num! 은 결과적으로 result! 로 계산하기 위해 설정했습니다. 

while n<num:
    print("num:",num,"num-1:",c, "resutl:",result)
    result*=c
    n+=1
    c-=1

num=n 이 같아지는 전 단계까지 진행합니다. ! 특성상 1까지인데 등호가 들어가면 0까지 되어 결과값이 0 이됩니다. 

그래서 항상 마지막이 1이되도록 하기 위해서 위처럼 설정하였습니다. 

n은 1씩 증가 시키고, c는 하나씩 감소시켰습니다. 초기 설정이 입력한 값보다 작다는 것..

print("num:",num,"num-1:",c, "resutl:",result)

는 결과값을 보기 위해서 넣었습니다 .

팩토리얼 코드는 설정하는 사람에 따라 다양할 수 있습니다. 

print(result)

 

num=int(input("숫자를 입력하세요. 입력:"))
n=1
result=num
c=num-1
while n<num:
    print("num:",num,"num-1:",c, "resutl:",result)
    result*=c
    n+=1
    c-=1

print(result)

 

 

두번째 코드 

결과값은 동일합니다. 

num=int(input("숫자를 입력하세요. 입력:"))
n=1
fa=1


while n<=num:
    c=fa
    fa*=n
    d=n
    n+=1
    print("n =",d,"일때","fa","=",c,"*",d,"= ",fa)


print(num,"! 은 %d " %fa)

num=int(input("숫자를 입력하세요. 입력:"))
n=1
fa=1
while n<=num:
    c=fa
    fa*=n
    d=n
    n+=1
    print("n =",d,"일때","fa","=",c,"*",d,"= ",fa)
print(num,"! 은 %d " %fa)
728x90
반응형

댓글