안녕하세요. 스마트팩토입니다.
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)
'Python' 카테고리의 다른 글
파이썬 초급 #040 while 반복문 영어단어 입력하고 모음, 자음 개수 카운터하는 프로그램 (0) | 2022.02.17 |
---|---|
파이썬 초급 #039 while 반복문 입력한 수의 각 자리수 합(a%10, a//10) (0) | 2022.02.16 |
파이썬 초급 #037 while 반복문 구구단 출력(무한루프 - q 누르면 종료) (0) | 2022.02.14 |
파이썬 초급 #036 while 반복문 점수 입력한 점수 평균구하기 for 문으로 나타내기 , 리스트변수에 저장하기(append()) (0) | 2022.02.13 |
파이썬 초급 #035 while 반복문 점수 평균 구하기 , 입력한 점수 리스트변수에 저장하기(append()) (0) | 2022.02.12 |
댓글