|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
对大数有效(仅保留整数部分,有小数的可以移动小数点后再开根)
- def big_sqrt(n):
- lst = []
- res = []
- while n > 0:
- lst.append(n%100)
- n //= 100
- q = lst.pop()
- for a in range(9,-1,-1):
- if a*a<=q:
- break
- res.append(a)
- if lst:
- qq = lst.pop()
- remind = (q-a*a)*100+qq
- else:
- remind = (q-a*a)*100
- while lst:
- for b in range(9,-1,-1):
- if (a*20+b)*b <= remind:
- break
- res.append(b)
- q = lst.pop()
- remind = (remind-(a*20+b)*b)*100+q
- a = int(''.join([str(i) for i in res]))
- return a
- print(big_sqrt(200000000000000000000))
复制代码
1414213562
[Finished in 0.1s]
|
|