Exigences :
Factorial : C'est aussi un terme en mathématiques ; factoriel fait référence à la multiplication de 1 fois 2 fois 3 fois 4 jusqu'au nombre requis, utilisez " !" Par exemple, la factorielle h est exprimée sous la forme h! ; la factorielle est généralement difficile à calculer car les produits sont très grands.
Question : Trouver la somme de 1+2 !+3!+...+20 !
Environnement d'implémentation : python3
Éditeur:pycharm
Analyse : 1. Le calcul de la factorielle est une partie gênante. C'est une meilleure solution d'utiliser une fonction récursive pour l'implémenter. fonction pour implémenter la fonction factorielle de solution.
def recursion(n): '定义递归函数实现求阶乘功能' if n==1: return 1 else: return n*recursion(n-1)
2. Idée de sommation, vous pouvez additionner directement, ou vous pouvez définir une liste pour ajouter le résultat factoriel obtenu par pour parcours à la liste, puis utiliser la somme ( ) fonction pour trouver et.
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)) #列表求和
Les deux peuvent réaliser leurs fonctions avec le même nombre de lignes de code.
Utiliser des points de connaissances : fonctions récursives, boucles for, fonctions range(), etc.
Code source complet et résultats :
#/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
Il a été vérifié que les deux peuvent réaliser des fonctions de base, mais les calculs avec de plus grandes quantités de données n'ont pas été testés.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!