#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实现
最新推荐文章于 2022-10-25 22:36:11 发布