藍橋杯試題 基礎練習Python實現高精度加法

2021-10-03 07:46:01 字數 1215 閱讀 3496

時間限制:1.0s 記憶體限制:512.0mb

輸入兩個整數a和b,輸出這兩個整數的和。a和b都不超過100位。

由於a和b都比較大,所以不能直接使用語言中的標準資料型別來儲存。對於這種問題,一般使用陣列來處理。

定義乙個陣列a,a[0]用於儲存a的個位,a[1]用於儲存a的十位,依此類推。同樣可以用乙個陣列b來儲存b。

計算c = a + b的時候,首先將a[0]與b[0]相加,如果有進製產生,則把進製(即和的十位數)存入r,把和的個位數存入c[0],即c[0]等於(a[0]+b[0])%10。然後計算a[1]與b[1]相加,這時還應將低位進上來的值r也加起來,即c[1]應該是a[1]、b[1]和r三個數的和.如果又有進製產生,則仍可將新的進製存入到r中,和的個位存到c[1]中。依此類推,即可求出c的所有位。

最後將c輸出即可。

輸入包括兩行,第一行為乙個非負整數a,第二行為乙個非負整數b。兩個整數都不超過100位,兩數的最高位都不是0。

輸出一行,表示a + b的值。

def

trans

(a):

#將輸入的字串變成列表輸出

a=for i in

range

(len

(a))

:eval

(a)%10)

a=a[:-

1]return a

a=input()

b=input()

a=trans(a)+[

0]*(

100-

len(a)

)#初始化a,b的長度為100

b=trans(b)+[

0]*(

100-

len(b))c=

[0]*

101#初始化c的長度為101r=0

#這個是存放的中間變數

for i in

range

(100):

o=a[i]

+b[i]

+r c[i]

=o%10

r=o//

10c.reverse(

)for i in

range

(len

(c))

:#輸出結果

if c[i]!=0

:for j in c[i:]:

print

(j,end='')

break

藍橋杯試題基礎練習 Python實現分解質因數

求出區間 a,b 中所有整數的質因數分解。輸入兩個整數a,b。每行輸出乙個數的分解,形如k a1a2a3 a1 a2 a3 k也是從小到大的 具體可看樣例 3 10 3 34 22 5 56 23 7 78 222 9 33 10 25 先篩出所有素數,然後再分解。2 a b 10000 def f...

藍橋杯 試題 基礎練習 時間轉換 python版

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 給定乙個以秒為單位的時間t,要求用 h m s 的格式來表示這個時間。表示時間,表示分鐘,而s表示秒,它們都是整數且沒有前導的 0 例如,若t 0,則應輸出是 0 0 0 若t 3661,則輸出 1 1 1 輸入格式 輸入只有一行,...

藍橋杯試題 基礎練習 Sine之舞

資源限制 時間限制 1.0s 記憶體限制 512.0mb 問題描述 最近fj為他的奶牛們開設了數學分析課,fj知道若要學好這門課,必須有乙個好的三角函式基本功。所以他準備和奶牛們做乙個 sine之舞 的遊戲,寓教於樂,提高奶牛們的計算能力。不妨設an sin 1 sin 2 sin 3 sin 4 ...