Python 平方根近似
我不熟悉Python和stackoverflow。我一直在尝试解决平方根近似的“while-loop”示例(主题5:问题9)。但是,我无法获得所需的输出。我不确定这个问题是否与循环或公式有关。问题是: 创建一个接受正数并返回2的函数 整数,使数字介于2的平方之间 整数。如果数字是平方,则返回相同的整数两次 整数的整数Python 平方根近似,python,Python,我不熟悉Python和stackoverflow。我一直在尝试解决平方根近似的“while-loop”示例(主题5:问题9)。但是,我无法获得所需的输出。我不确定这个问题是否与循环或公式有关。问题是: 创建一个接受正数并返回2的函数 整数,使数字介于2的平方之间 整数。如果数字是平方,则返回相同的整数两次 整数的整数 示例: sqApprox(2) (1, 2) sqApprox(4) (2, 2) sqApprox(5.1) (2, 3) 这是我的密码: def sqApprox(num
示例:
sqApprox(2)
(1, 2)
sqApprox(4)
(2, 2)
sqApprox(5.1)
(2, 3)
这是我的密码:
def sqApprox(num):
i=0
minsq=1#设置下限
maxsq=minsq#集上界
而我*i这就是为什么您的代码会执行它的功能:
执行行maxsq=minsq
后,这两个值都是1
当我们进入环路时
while i*i<=num: # set 'while' termination condition
if i*i<=num and i >=minsq: # complete inequality condition
minsq = i
if i*i<=num and i <=maxsq: # complete inequality condition
maxsq = i
i=i+1 # update i so that 'while' will terminate
当循环执行完毕后,一个简单的测试涉及到i-1
,足以确定返回的内容。要格式化代码,请以一个空行开始,然后在每行代码的开头添加四个空格,然后在末尾保留一个空行。为什么不忘记minsq
和maxsq
,只返回(i-1,i)
或(i-1,i-1)
(取决于它是否是一个完美的正方形)?你所需要做的就是用i*找到最后一个i
,谢谢你的帮助。
while i*i<=num: # set 'while' termination condition
if i*i<=num and i >=minsq: # complete inequality condition
minsq = i
if i*i<=num and i <=maxsq: # complete inequality condition
maxsq = i
i=i+1 # update i so that 'while' will terminate
while i*i<=num:
if i >=minsq:
minsq = i
if i <=maxsq:
maxsq = i
i=i+1
while i*i <= num:
i += 1 #shortcut for i = i + 1