python优势
# encoding = utf-8
# 开发者:xxx
# 开发时间: 21:57
# "Stay hungry,stay foolish."n = int(input())
res = 1
for i in range(n):res = res * (i+1)print(res)
正常算法
# encoding = utf-8
# 开发者:xxx
# 开发时间: 21:57
# "Stay hungry,stay foolish."def multiply_large_number(a, k):result = [] # 用于存储乘法结果。carry = 0 # 处理在乘法过程中产生的任何进位for digit in a:product = digit * k + carry# 通过将数字乘以 k 并加上当前进位,计算得到 product。carry = product // 10# 通过将 product 除以 10 取整来更新新的进位。result.append(product % 10)# product 的最后一位被附加到 result 数组中。while carry:result.append(carry % 10)carry //= 10return resultdef factorial(n):result = [1]for i in range(2, n + 1):result = multiply_large_number(result, i)return result# 输入一个正整数 n
# n = int(input("请输入一个正整数 n: "))
n = int(input())
# 计算 n!
result = factorial(n)# 输出结果
print(''.join(map(str, result[::-1])))
所涉及方法:
''.join(map(str, result[::-1]))
这段代码是Python中的一种常见用法,用于将一个列表(或其他可迭代对象)中的元素转换为字符串,并以指定的字符连接起来。让我逐步解释:
-
result[::-1]
: 这是Python中的切片操作。[::-1]
表示从列表result
的末尾到开头逆序切片,也就是将result
中的元素逆序排列。 -
map(str, result[::-1])
: 这一部分利用了map()
函数。map()
函数接受一个函数和一个可迭代对象作为输入,它会将该函数应用于可迭代对象的每个元素,并返回一个包含结果的迭代器。在这里,str
函数被用于将列表中的每个元素转换为字符串。 -
"".join(...)
: 这是字符串对象的join()
方法。它将接受一个可迭代对象作为参数,并将其元素连接成一个字符串。在这里,空字符串""
被用作连接符,这意味着列表中的元素将直接连接在一起,没有任何额外的字符。
综合起来,这段代码的作用是将列表 result
中的元素逆序排列,并将它们连接成一个字符串。