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()