组成新数python_大数相加 简单实现 Python 版本
上一次寫這種類型的題目 應(yīng)該還是在讀書的時(shí)候啦
今天偶然同學(xué)問一段python代碼是啥意思 看了看 有點(diǎn)長(zhǎng)
運(yùn)行一下 像是大數(shù)相加 然后突然個(gè)想法 想試下 就寫了一小段代碼 運(yùn)行了一下發(fā)現(xiàn)結(jié)果一樣 應(yīng)該行得通 記錄一下
就是將2個(gè)數(shù)組 每個(gè)數(shù)組對(duì)應(yīng)的位置的數(shù)字相加+新數(shù)組當(dāng)前位置的值(默認(rèn)是0)
放到新的數(shù)組對(duì)應(yīng)的位置 如果大于0新數(shù)組前一位變成1 當(dāng)前位置%10
代碼如下
import time
L1="2649821731631836529481632803462831616487712734074314936141303241873417434716340124362304724324324324324323412121323164329751831"
L2="1045091731748365195814509145981509438583247509149821493213241431431319999999999999999999999999999999999999999999999999341344779"
startTime=time.time()
#長(zhǎng)度強(qiáng)行扭轉(zhuǎn)到一致 不夠前面補(bǔ)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)
#長(zhǎng)度一致 每個(gè)對(duì)應(yīng)的位置的相加的和 %10 前一位補(bǔ)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('耗時(shí){0}ms'.format(time.time()-startTime))
總結(jié)
以上是生活随笔為你收集整理的组成新数python_大数相加 简单实现 Python 版本的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python写web自动化_使用Pyth
- 下一篇: 大学计算机基础python学多久_怎么自