DAY 004--递归求某数的阶乘

Posted JunSheep

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了DAY 004--递归求某数的阶乘相关的知识,希望对你有一定的参考价值。

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

以上是关于DAY 004--递归求某数的阶乘的主要内容,如果未能解决你的问题,请参考以下文章

求解大于某数的下一个素数

004-递归

C语言基础:递归(数的阶乘斐波那契数列)

(C语言试题练习)用递归方式 求1——n之间的阶乘

(C语言试题练习)用递归方式 求1——n之间的阶乘

(C语言试题练习)用递归方式 求1——n之间的阶乘