#coding=utf-8
import math
n = 189 # 开方数
precison = 100 #精确小数点后位数
decimal = []
def mypow(int_part, d):
i = len(d)
_i = (int_part**2)*pow(10, 2*i)
_m = 2*int_part*pow(10, i)*to_value(d)
_d = pow_deciaml(d)
ret = _i+_m+_d
return ret
def to_value(d):
ret = 0
i = len(d)
for i in range(0, i):
ret = 10*ret + d[i]
return ret
def pow_deciaml(d):
res = 0
mid = 0
i = len(d)
for k in range(0, i):
c = d[k]
res = res*100+20*mid*c+c**2
mid = mid*10+c
return res
#return res/(10**(2*i))
int_part = int(math.sqrt(n))
print('整数部分: ', int_part)
decimal = [9 for i in range(0, precison)]
for k in range(0, precison):
while 0 < decimal[k]:
comp = mypow(int_part, decimal[0:k+1])
#print('comp = ', comp)
dcamp = n*pow(10, 2*(k+1))
if dcamp < comp:
decimal[k] = decimal[k]-1
else:
break
for i, e in enumerate(decimal):
if 0 == i%10 and 0 < i:
print('')
print(decimal[i], end='')
#r = mypow(1, [7, 2, 1])
#print(r)
计算任意正整数的平方根,精确到指定位数---使用python实现
最新推荐文章于 2023-09-05 02:01:12 发布
本文介绍了一种使用Python实现的高精度平方根计算方法,通过自定义函数mypow进行逐位逼近,实现对任意正整数开方并精确到指定小数位数的过程。该算法适用于数学计算和科学工程领域的高精度需求。
1017

被折叠的 条评论
为什么被折叠?



