#include
using
namespace std;
intmain()
,xb[
1000]=
,xc[
1000]=
;//轉為數字陣列
for(i=
0;ilength()
;i++
)
xa[i]
=a[a.
length()
-i-1]-
'0';
for(i=
0;ilength()
;i++
) xb[i]
=b[b.
length()
-i-1]-
'0';
for(i=
0;ilength()
;i++
) xc[i]
=c[c.
length()
-i-1]-
'0';
//高精度加法
int cnt=
max(a.
length()
,b.length()
);for(i=
0;i) cnt=
(cnt>c.
length()
)?cnt:c.
length()
;//高精度比較
bool check=
true
,same=
true
;for
(i=cnt;i>=
0;i--)}
if(same)cout<<
"no"
"yes"
<"no"
<}return0;
}
關鍵**while(!xa[i]&&i)i--;
如果沒有,55-55就會等於00
用到公式:(a-b)= -(b-a)
解決思路:特判
特判當字串1所表示的數小於字串2所表示的數
關鍵**if((a例如:9<89,因為9>8
12300>123,前三位相等,但是前面的字串位數多
#includeusing
namespace std;
bool pd;
string a,b;
intmain()
int i;
int xa[
10500]=
,xb[
10500]=
;for
(i=0
;ilength()
;i++
)xa[i]
=a[a.
length()
-i-1]-
'0';
for(i=
0;ilength()
;i++
)xb[i]
=b[b.
length()
-i-1]-
'0';
int t;
for( i=
0;i<
max(a.
length()
,b.length()
);i++
)else xa[i]
=t;}
while
(!xa[i]
&&i)i--
;//很重要,去掉前導0
if(pd==
true
)cout<<
"-";
for(
;i>=
0;i--
)cout<;return0;
}
for
(i=0
;ilength()
;i++
)for
(j=0
;jlength()
;j++
)
#include
using
namespace std;
bool pd;
string a,b;
int xa[
10005
],xb[
10005
],c[
10005];
intmain()
for(i=
0;ilength()
+b.length()
;i++)}
while
(!c[i]
&&i)i--
;for
(;i>=
0;i--
)cout<;return0;
}
高精度加法 減法 乘法 除法
給定兩個正整數,計算它們的和。輸入格式 共兩行,每行包含乙個整數。輸出格式 共一行,包含所求的和。資料範圍 1 整數長度 100000 輸入樣例 1223 輸出樣例 35高精度加法利用陣列儲存每一位數,把最後一位儲存到陣列的第一位會方便操作一些,然後就是模擬人為加法的過程 include using...
高精度演算法 加法,減法,乘法
高精度演算法 日期 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...