pdl666 发表于 2023-4-22 18:18:25

阶乘:以按相反顺序打印阶乘结果

题目描述

阶乘:编写代码以按相反顺序打印阶乘结果。输出为小于等于n的所有合数的阶乘 (注:n的阶乘是1*2*3*…*n;不能使用math.factorial()函数)。


输入

n


输出

以按相反顺序打印阶乘结果。输出为小于等于n的所有合数的阶乘 。




输入样例1
6
输出样例1
6!: 720
4!: 24

isdkz 发表于 2023-4-22 18:19:20



您好,以下是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


输出按相反顺序排列,因为我们从大到小迭代整数。

歌者文明清理员 发表于 2023-4-22 18:19:44

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]
查看完整版本: 阶乘:以按相反顺序打印阶乘结果