输入一个整数,求它的阶乘

img


import math 
num=eval(input())
if num>=0:
  sum=math.factorial(num)
  print(" %d 的阶乘为 %d" % (num,sum))
else:
  print("抱歉,负数没有阶乘")

运行与示例一致,但解答错误,有没有朋友可以告知哪里有问题啊


def fac(n):
    if n < 0:
        return "抱歉,负数没有阶乘"
    else:
        su = 1
        for i in range(1,n+1):
            su*=i
        return " %d 的阶乘为 %d" % (n,su)
print(fac(eval(input())))

试试这个能否过关:

num = eval(input())
res = 1
if num<0:
    print("抱歉,负数没有阶乘")
else:
    for i in range(num):
        res *= i+1
    print("%d 的阶乘为 %d" % (num, res))
num=eval(input())
fact = 1
if num>=0:
    for i in range(num):
        fact *= i + 1
    print("%d 的阶乘为 %d" % (num, fact))
else:
    print("抱歉,负数没有阶乘")