📜  TCS 编码练习题 |一个数的阶乘(1)

📅  最后修改于: 2023-12-03 14:47:53.007000             🧑  作者: Mango

TCS 编码练习题 | 一个数的阶乘

简介

本编码练习题旨在考察程序员对于计算一个数的阶乘的能力。阶乘是数学中常见的概念,指的是一个正整数的所有小于等于它的正整数的乘积。

题目描述

编写一个函数,接受一个正整数作为参数,并计算该正整数的阶乘。然后将计算结果返回。

函数签名
def factorial(n: int) -> int:
    pass
输入
  • 参数 n:一个正整数 n (1 ≤ n ≤ 20),表示要计算阶乘的数。
输出
  • 返回一个整数,表示计算得到的阶乘结果。
示例
factorial(5)  # 返回 120
factorial(1)  # 返回 1
factorial(10)  # 返回 3628800
factorial(0)  # 返回 1
解题思路

计算一个数的阶乘可以使用循环或递归的方式进行。这里我们使用循环的方法来计算阶乘。

  1. 初始化一个变量 result 并赋值为 1,用于保存阶乘的计算结果。
  2. 使用一个循环从 1 迭代到 n,每次将当前的数与 result 相乘,并将结果赋值给 result
  3. 循环结束后,result 就存储了 n 的阶乘结果。
代码实现
def factorial(n: int) -> int:
    result = 1
    for i in range(1, n + 1):
        result *= i
    return result
复杂度分析

该函数的时间复杂度为 O(n),其中 n 是输入的正整数。因为我们需要执行一个循环来计算阶乘,循环的次数与输入的正整数 n 相关。

总结

本题要求计算一个数的阶乘,可以使用循环的方式进行。通过遍历从 1 到 n 的每个数,并将其与计算结果相乘,最终得到阶乘结果。编写这样的函数有助于加强程序员对于循环和数学计算的理解和应用能力。