程序员文章、书籍推荐和程序员创业信息与资源分享平台

网站首页 > 技术文章 正文

Python求解平方根向上取整公式计算

hfteth 2025-04-07 14:33:18 技术文章 14 ℃


任务要求

计算下列数学表达式的结果并输出,结果向上取整保留整数。

res =

程序接收变量 num,返回的是 res。

注明:

* 代表乘。如 2 * 3 代表2乘以3,结果是 6;

^ 代表次方。如2 ^ 3代表2的3次方,结果是 8。

任务分析

可以分为以下几个步骤:

1. 分子计算:首先计算分子部分。

2.分数计算:将分子除以输入参数num。

3.平方根计算:对分数结果开平方。

4.向上取整:对平方根结果向上取整。

任务实现

方法一:直接使用Python内置库

import math
class Solution:
def SpMtFml(self, num: int) -> int:
numerator = 3 ** 4 + 5 * 6 ** 5
result = math.ceil((numerator / num) ** 0.5)
return result
s = Solution()
print(s.SpMtFml(5)) # 输出结果

说明:

  • import math导入了math库。
  • math.ceil()函数对平方根结果进行向上取整。

方法二:不使用math模块

class Solution:
def SpMtFml(self, num: int) -> int:
numerator = 3 ** 4 + 5 * 6 ** 5
value = (numerator / num) ** 0.5
result = int(value) if value == int(value) else int(value) + 1
return result
s = Solution()
print(s.SpMtFml(5)) # 输出结果

说明:不使用math模块,通过其他方式实现相同的功能。

向上取整:通过判断平方根是否为整数来决定是否加1。

  • 如果平方根是整数,则直接转换为整数。
  • 如果不是整数,则将整数部分加1。

方法三:优化分子计算

import math
class Solution:
def __init__(self):
self.numerator = 3 ** 4 + 5 * 6 ** 5 # 预先计算分子部分
def SpMtFml(self, num: int) -> int:
result = math.ceil((self.numerator / num) ** 0.5)
return result
s = Solution()
print(s.SpMtFml(5)) # 输出结果

说明:预先计算分子部分的值,以提高效率。在类的__init__方法中预先计算分子部分。

运行结果

89

进程已结束,退出代码为 0

Tags:

最近发表
标签列表