題解P1601 A B problem 高精)

2021-10-07 17:18:43 字數 2385 閱讀 1563

當時信奧老師叫我們做出a+b高精,於是我就做了一波

從高往低位。如果碰到進製後面加一下1,注意歸零

還有字串轉字元。

#include

using

namespace std;

intg

(char w)

inty

(int a,

int b)

intmain()

for(

int i=

0;isize()

;i++

)/*for(int i=0;iint max=

y(str1.

size()

,str2.

size()

);for(

int i=

0;iif(u[max]

>0)

for(

int i=max;i>=0;

--i)

//前導零。。。

in檔案

11111111111111111111111111

9999999999999999999999999999999999

out

\mathsf

out檔案

10000000011111111111111111111111110
自側,少了999...9

999...9

999...

9[驚恐][驚恐]

想了一下,應該特判,再加上缺少的位數。(max-str2.size()

#include

using

namespace std;

intg

(char w)

inty

(int a,

int b)

intmain()

for(

int i=

0;isize()

;i++

)/* for(int i=0;iint max=

y(str1.

size()

,str2.

size()

);int tql=0;

if(max==str2.

size()

)tql=max-str1.

size()

;for

(int i=

0;i(u[i]

>=10)

}if(u[max]

>0)

for(

int i=max;i>=0;

--i)

cout<

;else

for(

int i=max-

1;i>=0;

--i)

cout<

;return0;

}

完美(?),提交一發……

boom!!第五個測試點wa了[衰]

仔細想想,想不出來,但是新思路來了!

當時max變數放它幹嘛??

如果如果

如果第二個數字大幾位,那麼交換一下不就ok了嗎?!

#include

using

namespace std;

intg

(char w)

intmain()

for(

int i=

0;isize()

;i++

)for

(int i=

0;isize()

;i++

)for

(int i=

0;isize()

;i++)}

if(u[str1.

size()

]>0)

for(

int i=str1.

size()

;i>=0;

--i)

cout<

;else

for(

int i=str1.

size()

-1;i>=0;

--i)

cout<

;return0;

}

P1601高精度加法

傳送門 雖然本題一本通上有,但是一本通不是萬能的,這道題就漏掉了進製 所以這告訴我們加法進製很重要 直接上修改後的題解 include include include using namespace std char s 10001 k 10001 int a 10000001 b 100001 c...

落谷 P1601 A B Problem(高精)

題目背景 無題目描述 高精度加法,x相當於a b problem,b color red 不用考慮負數 color b 輸入格式 分兩行輸入a,b 10 500 輸出格式 輸出只有一行,代表a b的值 輸入輸出樣例輸入1 1輸出2 includeusing namespace std int mai...

P1601 高精加法 壓位

原題鏈結 高精加法是比較熟悉的乙個高精了 但是現在要練習壓位 一開始覺得 簡單的合併就好 後來想起來還要 保證壓的這幾位是順序 但是整體是倒序 想了個比較麻煩的辦法 include include include include include include include include usi...