Python阶乘程序-打印方程式

时间:2019-02-17 21:35:20

标签: python

我正在编写一个计算数字阶乘的程序,我能够显示正确的答案,但是与答案一起,我需要实际的计算才能显示,对此我遇到了麻烦。例如,当用户输入4时,我需要将其显示为:

我一直在尝试找出正确的代码,但不知道该怎么办。

这是我到目前为止的代码

number = int(input(“输入要采用阶乘的数字:”))

factorial = 1
for i in range(1, number + 1):
factorial = factorial * i

print (factorial)

现在,它显示正确的答案,但是我需要它包括以下等式:4! = 1 x 2 x 3 x 4 = 24

3 个答案:

答案 0 :(得分:1)

最简单的方法是在迭代时构造字符串:

equation = str(number) + "! = "

factorial = 1
for i in range(1, number + 1):
    factorial = factorial * i
    equation += str(i) + "x"

equation = equation[:-1] + " = " + str(factorial)
print(equation)

请注意,此方法在最后一个因子后面附加了多余的“ x”。 equation[:-1]将其删除。

或者,您可以将此单行解决方案附加到代码末尾。它使用字符串类的join方法来连接字符串数组:

print(str(number) + "! = " + "x".join(str(n) for n in range(1, number + 1)) + " = " + str(factorial))

答案 1 :(得分:0)

当您遍历要相乘的数字时,可以将每个数字的字符附加到包含等式(例如ans)的字符串中,最后打印出来。在代码末尾,我省略了最后一个字母,因为我不想显示额外的“ x”。

def fact(number):
    num_string=str(number)
    factorial = 1
    ans=num_string+"!="
    for i in range(1, number + 1):
        factorial = factorial * i
        ans+=str(i)+"x"
    ans=ans[:-1]
    print(ans)
    return factorial
fact(4)

答案 2 :(得分:0)

您可以将每个值附加到列表中,然后使用f字符串打印方程式:

num = 5
l = []
f = 1
for i in range(1, num + 1):
    f *= i
    l.append(i)

print(f"{num}! = {' x '.join(map(str, l))} = {f}")
# 5! = 1 x 2 x 3 x 4 x 5 = 120