Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
Tags
- 파이썬
- 그래프
- Algorithm
- httpCode
- NoSQL
- 알고리즘기초
- 코딩문제
- 데이터
- 코테
- 데이터베이스
- chatGPT
- 탐색알고리즘
- 백준
- Python
- 인프콘2024
- 마크다운문법
- 그리디알고리즘
- 코딩테스트
- 소수
- 기초
- 몽고DB
- 알고리즘
- mongoDB
- 수학
- Markdown
- 그리디
- db
- 수열
- 마크다운
- database
Archives
- Today
- Total
Dev_from the Bottom
#10. Algorithm06_python) 수열 1!+2!+3!+4!+5!+...+10!의 합계 본문
문제)
1! + 2! + 3! + 4! + 5! + ... + 10! 의 순서로 나열되는 수열의 10번째 항까지의 합계
step1) 테스트 : 팩토리얼 구하기 ex) 3!, 4!
# 3! = 6
a = 1
for i in range(1,3+1):
a *= i
print(a)
>>>
6
# -------------------------
# 4! = 24
a = 1
for i in range(1,4+1):
a *= i
print(a)
>>>
24
step2) 팩토리얼 수열의 합계 구하기 ex) 4! 까지
# 1!+2!+3!+4! = 1+2+6+24 = 33
answer = 0
for i in range(1, 4+1):
# 각 요소의 팩토리얼
factorial = 1
for j in range(1, i+1):
factorial *= j
print(f'{j}! : {factorial}')
# 팩토리얼 값 누적
answer += factorial
print()
print('합계 :', answer)
>>>
1! : 1
2! : 2
3! : 6
4! : 24
합계 : 33
step3) 정답 출력
# 1!+2!+3!+4!+5!+...+10! = 4037913
answer = 0
for i in range(1, 10+1):
# 각 요소의 팩토리얼
factorial = 1
for j in range(1, i+1):
factorial *= j
# 팩토리얼 값 누적
answer += factorial
print(f'정답 : {answer}')
>>>
정답 : 4037913
step4) 메서드화
def algo06():
answer = 0
for i in range(1, 10+1):
# 각 요소의 팩토리얼
factorial = 1
for j in range(1, i+1):
factorial *= j
# 팩토리얼 값 누적
answer += factorial
return answer
print(f'정답 : {algo06()}')
>>>
정답 : 4037913
step5) 메서드 확장 : n값 입력받아서, n! 까지 합계
def algo06_extend(n):
answer = 0
for i in range(1, n+1): # n으로 수정
# 각 요소의 팩토리얼
factorial = 1
for j in range(1, i+1):
factorial *= j
# 팩토리얼 값 누적
answer += factorial
return answer
n = int(input("숫자 n 입력 : "))
print(f'1!+2!+3!+...+{n}!의 값 : {algo06_extend(n)}')
>>>
숫자 n 입력 : 10
1!+2!+3!+...+10!의 값 : 4037913
# 소회
- 앞으로는 변수명 만들 때, 신경 써야 할 듯
- ex) 변수 factorial
- 팩토리얼을 더 효율적으로 구현하는 로직이 많은 테니, 추후 테스트 및 고민
- ex) 재귀 호출
'Algorithm_study' 카테고리의 다른 글
#12. Algorithm08_python) 소수 판별 (0) | 2022.05.13 |
---|---|
#11. Algorithm07_python) 피보나치 수열의 합 (0) | 2022.05.12 |
#9. Algorithm05_python) 1+2+4+7+11+16+22+...의 순서로 나열되는 수열의 20번째 항까지의 합계 (0) | 2022.05.10 |
#8. Algorithm04_python) -(1/2)+(2/3)-(3/4)+(4/5)-(5/6)+(6/7) ... -(99/100)의 합계 구하기 (0) | 2022.05.09 |
#7. Algorithm03_python) 1-2+3-4+5-6+ ... +99-100의 합계 구하기 (0) | 2022.05.08 |
Comments