阶乘:以按相反顺序打印阶乘结果
题目描述阶乘:编写代码以按相反顺序打印阶乘结果。输出为小于等于n的所有合数的阶乘 (注:n的阶乘是1*2*3*…*n;不能使用math.factorial()函数)。
输入
n
输出
以按相反顺序打印阶乘结果。输出为小于等于n的所有合数的阶乘 。
输入样例1
6
输出样例1
6!: 720
4!: 24
您好,以下是Python的实现代码:
def factorial(n):
result = 1
for i in range(2, n+1):
result *= i
return result
n = int(input())
for i in range(n, 1, -1):
if i == 2 or i == 3 or i == 5 or i == 7:
continue
print(str(i) + "!: " + str(factorial(i)))
首先,我们定义了一个计算阶乘的函数factorial(n),该函数接受一个整数n并返回n的阶乘。然后,我们使用for循环遍历从n到2的所有整数(包括n和2)。如果当前整数是2、3、5或7,则跳过当前循环,因为这些整数是质数,它们的阶乘没有在输出中要求。否则,我们计算当前整数的阶乘并输出结果。注意,我们使用字符串拼接符号+将输出字符串组合在一起。
例如,如果输入为6,输出将为:
6!: 720
4!: 24
输出按相反顺序排列,因为我们从大到小迭代整数。 def jiecheng(n):
# 2 * 3 * 4 * 5 * 6 * ... * n
if n < 0:
raise ValueError("n < 0")
if n == 1 or n == 0:
return 1
else:
return jiecheng(n - 1) * n
页:
[1]