요구사항:
팩토리얼: 수학에서도 사용되는 용어입니다. 팩토리얼은 1 곱하기 2 곱하기 3 곱하기 4를 필수 숫자로 곱하는 것을 의미하며, 팩토리얼을 표현하려면 " !"를 사용하세요. 예를 들어, h 계승은 h!로 표현됩니다. 곱이 매우 크기 때문에 일반적으로 계산하기가 어렵습니다.
질문: 1+2!+3!+...+20의 합을 구하세요!
구현 환경: python3
Editor:pycharm
분석: 1. 계승 계산은 번거로운 부분이므로 재귀 함수를 사용하여 먼저 재귀를 정의하는 것이 더 좋습니다. 해 계승 함수를 구현하는 함수입니다.
def recursion(n): '定义递归函数实现求阶乘功能' if n==1: return 1 else: return n*recursion(n-1)
2. 합산 아이디어, 직접 합산할 수도 있고, for 순회하여 얻은 계승 결과를 목록에 추가하도록 목록을 정의한 다음 sum() 함수를 사용할 수도 있습니다. 합계하다.
sum_0=0 print("for循环直接调用递归函数求和".center(80,"*")) #显示效果明显 for i in range(1,21): sum_0 +=recursion(i) print(sum_0) 列表求和方案: list=[] #定义一个空的列表,将调用递归函数生成的阶乘值追加到列表 print("将1-20的阶乘写入列表,使用sum函数求和".center(80,"*")) #显示效果明显 for i in range(1,21): list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表 print(sum(list)) #列表求和
둘 다 동일한 수의 코드 라인으로 해당 기능을 달성할 수 있습니다.
지식 포인트 사용: 재귀 함수, for 루프, range() 함수 등
전체 소스 코드 및 결과:
#/usr/bin/env python #_*_coding:utf-8_*_ def recursion(n): '定义递归函数实现求阶乘功能' if n==1: return 1 else: return n*recursion(n-1) list=[] #定义一个空的列表,将调用递归函数生成的阶乘值追加到列表 print("将1-20的阶乘写入列表,使用sum函数求和".center(80,"*")) #显示效果明显 for i in range(1,21): list.append(recursion(i))# 将调用递归函数生成的阶乘值追加到列表 print(sum(list)) #列表求和 sum_0=0 print("for循环直接调用递归函数求和".center(80,"*")) #显示效果明显 for i in range(1,21): sum_0 +=recursion(i) print(sum_0) 结果: *****************************将1-20的阶乘写入列表,使用sum函数求和***************************** 2561327494111820313 ********************************for循环直接调用递归函数求和********************************* 2561327494111820313
둘 다 기본 기능을 수행할 수 있는 것으로 확인되었지만 더 많은 양의 데이터를 사용한 계산은 테스트되지 않았습니다.
위 내용은 파이썬 코드의 계승합산 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!