求阶乘(两种方法)

 题目

题目描述
x 的阶乘,即= x * (x-1) * (x-2) * ··· * 2 * 1。
输入一个整数 m,计算并输出其阶乘的值。

输入格式          一个整数。

输出格式          一个整数。

一道数学题,让电脑来解,怎么写,想一下,for in 解了,就试一下

解法一

m=int(input())
sum=1
for i in range(1,m+1):
    sum=sum*i
print(sum)

 运行一下,可以算。打开题解,发现里面有部分人用递归来解,不懂,打开csdn学习起来!

递归

函数定义中调用函数自身的方式称为递归,阶乘就是一个典型的例子,直接以上面的问题为例子,

解法二

用法1:递归

m=int(input())
def function(x):
    if x==0:
        return 1
    else:
        return x*function(x-1)
print(function(m))

还见到递归在算法题中的一种用法 

用法2:回文

即字符串反转,例如输入123,回文后得到 321

用函数递归实现如下

a=input()
def huiwen(x):
    if len(x)==1:
        return x
    else:
        return x[-1]+huiwen(x[:len(x)-1])
print(huiwen(a))

因为刚开始做,碰到的题很少,还没有见到其他用递归解的题,以后碰到慢慢用吧

  • 7
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值