高精度加法 減法 乘法 除法

2021-10-04 17:33:32 字數 2199 閱讀 4765

給定兩個正整數,計算它們的和。

輸入格式

共兩行,每行包含乙個整數。

輸出格式

共一行,包含所求的和。

資料範圍

1≤整數長度≤100000

輸入樣例:

1223

輸出樣例:

35

高精度加法利用陣列儲存每一位數,把最後一位儲存到陣列的第一位會方便操作一些,然後就是模擬人為加法的過程~~~

#include

using

namespace std;

vector<

int>

add(vector<

int>

& a,vector<

int>

& b)

return c;

}int

main()

給定兩個正整數,計算它們的差,計算結果可能為負數。

輸入格式

共兩行,每行包含乙個整數。

輸出格式

共一行,包含所求的差。

資料範圍

1≤整數長度≤105

輸入樣例:

3211

輸出樣例:

21

減法需要把 小的 - 大的轉化成 -(大的 - 小的),然後一樣是模擬人做減法的過程啦。

#include

using

namespace std;

vector<

int>

sub(vector<

int>

& a,vector<

int>

& b)

while

(c.size()

>

1&& c.

back()

==0) c.

pop_back()

;return c;

}bool

cmp(string & a,string & b)

}int

main()

else

}

給定兩個正整數a和b,請你計算a * b的值。

輸入格式

共兩行,第一行包含整數a,第二行包含整數b。

輸出格式

共一行,包含a * b的值。

資料範圍

1≤a的長度≤100000,

1≤b≤10000

輸入樣例:23

輸出樣例:

6

直接模擬就完事!

#include

using

namespace std;

vector<

int>

mul(vector<

int>

& a,

int b)

return c;

}int

main()

給定兩個正整數a,b,請你計算 a / b的商和餘數。

輸入格式

共兩行,第一行包含整數a,第二行包含整數b。

輸出格式

共兩行,第一行輸出所求的商,第二行輸出所求餘數。

資料範圍

1≤a的長度≤100000,

1≤b≤10000

輸入樣例:72

輸出樣例:31

除法需要注意去掉前導 0 ,在去掉的過程中,由於我們使用的vector的back方法取出最後乙個元素,所以先將它翻轉一下再去掉前導 0

#include

using

namespace std;

vector<

int>

div(vector<

int>

& a,

int b,

int& r)

reverse

(c.begin()

,c.end()

);while

(c.size()

>

1&& c.

back()

==0) c.

pop_back()

;return c;

}int

main()

高精度演算法 加法,減法,乘法

高精度演算法 日期 11月10日 include includevoid add char a,char b void sub char a,char b void mul char a,char b int main n2 202 scanf s s n1,n2 陣列名稱為首位址 add n1,n...

高精度加法 高精度減法

雖然以前自己就學習過,但是自己打出來的 目測效率不高,也不夠精簡 因此學習一下eden裡面的這一題 big integer add subtract ifndef big integer define big integer include include using std string usin...

高精度減法,高精度乘法

高精度減法 oj資料偏弱如果新增乙個101 2就錯了,下面這一步是為了防止錯誤的 if a aa 0 可能出現第一位的1被借走的的情況,所以加乙個while找第乙個不是0的 while c i 0 i include include include include include include u...