004-- 用递归求解某数的阶乘
n的阶乘:n(n-1)(n-2)(n-3)****1
流程分析:
1、输入某个数字n,计算该数字的阶乘:n!
2、递归求阶乘函数,参数为n:
2.1、判断数字是否等于1,如果等于1 ,函数返回1
2.2、如果函数不返回1,则函数返回n*fun(n-1),以此递归
代码分析:
def factorial(n): if n==1: return 1 return n*factorial(n-1) def main(): n=input("请输入数字的阶乘:") if n.isdigit(): n=int(n) print("%d的阶乘为%d"%(n,factorial(n))) else: print("输入的值非数字!") if __name__=="__main__": main()
题目反思 :
1、这算是我第一次做递归题把,虽然题目很简单,但是这个方法并不是我自己想到的,而是百度搜索的,很羞耻。
2、递归其实就是函数满足某个条件后,运行本身函数,直到不满足条件为止(个人理解,不对还望改正)
新学知识点:
1、阶乘的函数编写,运用递归的思维
2、初步了解递归的用法
Mark on 2018.04.07