python实现N的阶乘,C实现N的阶乘

本文介绍并对比了两种计算阶乘的Python程序实现方式。一种直接利用Python的高精度算术,适用于大整数计算,另一种则采用逐位累加的方法,适合于需要考虑溢出问题的场景。通过这两种方法,读者可以了解到如何处理大整数运算及避免溢出错误。
摘要由CSDN通过智能技术生成

n的阶乘。

感谢琦哥的思路,俊哥的讲解!

代码一,由于是python编程,不考虑溢出问题。

代码二,如果不用python编程,需考虑溢出问题。代码二的思路用在其它语言也不用考虑溢出问题。

'''
计算20的阶乘
'''

result_list = [] #储存计算结果

def factory(n):
    sum = 1
    for i in range(n):
        sum = sum *(i+1)
        result_list.append(sum)
    return result_list


def main():
    n = int(input('请输入所需要计算阶乘的数值:'))
    factory(n)
    print("{}的阶乘是:{}".format(n,result_list[-1]))

if __name__ == '__main__':
    main()
'''
n的阶乘
'''
def main():
    n = int(input('请输入n:'))
    a = [1]
    c = 1  #现有的位数
    k = 0  # 表示进位
    m = n + 1
    for i in range(1, m):
        s = 0
        for j in range(0, c):
            s = a[j] * i + k
            a[j] = s % 10
            k = int(s / 10)

        while k:
            a.append(k % 10)
            k = int(k / 10)
            c = c + 1

    print('%s!=' % n, end="")
    a = a[::-1]

    for i in a:
        print(i, end="")


if __name__ == '__main__':
    main()

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值