组成新数python_大数相加 简单实现 Python 版本
上一次寫這種類型的題目 應該還是在讀書的時候啦
今天偶然同學問一段python代碼是啥意思 看了看 有點長
運行一下 像是大數相加 然后突然個想法 想試下 就寫了一小段代碼 運行了一下發現結果一樣 應該行得通 記錄一下
就是將2個數組 每個數組對應的位置的數字相加+新數組當前位置的值(默認是0)
放到新的數組對應的位置 如果大于0新數組前一位變成1 當前位置%10
代碼如下
import time
L1="2649821731631836529481632803462831616487712734074314936141303241873417434716340124362304724324324324324323412121323164329751831"
L2="1045091731748365195814509145981509438583247509149821493213241431431319999999999999999999999999999999999999999999999999341344779"
startTime=time.time()
#長度強行扭轉到一致 不夠前面補0
max_len= len(L1) if len(L1)>len(L2) else len(L2)
l1=L1.zfill(max_len)
l2=L2.zfill(max_len)
a1=list(l1)
a2=list(l2)
#長度一致 每個對應的位置的相加的和 %10 前一位補1 如果>10 否則0 99+99最大3位所以多一位
a3=[0]*(max_len+1)
for index in range(max_len-1,-1,-1):
index_sum=a3[index+1]+int(a1[index])+int(a2[index])
less=index_sum-10
a3[index+1]=index_sum%10
a3[index]=1 if less>=0 else 0
if(a3[0]==0):
a3.pop(0)
a33=[str(i) for i in a3]
print(''.join(a33))
print('耗時{0}ms'.format(time.time()-startTime))
總結
以上是生活随笔為你收集整理的组成新数python_大数相加 简单实现 Python 版本的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python写web自动化_使用Pyth
- 下一篇: 大学计算机基础python学多久_怎么自