cin>>a>>b;
for(i=a.
size()
-1;i>=
0;i--
)for
(i=b.
size()
-1;i>=
0;i--
)
#include
#include
using namespace std;
const
int n =
1e6+10;
//+10防止出現邊界問題
vector<
int>
add(vector<
int>
&a,vector<
int>
&b)if
(t)//判斷最高位是否有進製
c.push_back(1
);return c;
}int
main()
for(i=b.
size()
-1;i>=
0;i--
)auto c=
add(a,b)
;//auto讓編譯器自己判斷返回值的型別
// 否則此處應為vectorc = add(a,b);
for(i=c.
size()
-1;i>=
0;i--
)return0;
}
#include
#include
using namespace std;
bool cmp
(vector<
int>
&a,vector<
int>
&b)//判斷ab的大小保證結果正負的正確性
return true;
}vector<
int>
sub(vector<
int>
&a,vector<
int>
&b)while
(c.size()
>
1&&c.
back()
==0)//去掉前導0 如0003->3
c.pop_back()
;return c;
}int
main()
for(i=b.
size()
-1;i>=
0;i--)if
(cmp
(a,b))}
else
}return0;
}
#include
#include
using namespace std;
vector<
int>
mul(vector<
int>
&a,int b)
while
(c.size()
>
1&&c.
back()
==0)//去除前導0,b為0時
c.pop_back()
;return c;
}int
main()
auto c=
mul(a,b)
;for
(i=c.
size()
-1;i>=
0;i--
)return0;
}
#include
#include
#include
using namespace std;
//a除以b,c是商,r是餘數
vector<
int>
div(vector<
int>
&a,int b,
int&r)
//r用過引用傳回
reverse
(c.begin()
,c.end()
);//逆轉元素
while
(c.size()
>
1&&c.
back()
==0)//去掉前導0
c.pop_back()
;return c;
}int
main()
auto c=
div(a,b,r)
;for
(i=c.
size()
-1;i>=
0;i--
) cout
}
高精度整數運算
問題描述 編寫乙個程式,進行高精度整數的加 減 乘運算。輸入兩個十進位製大整數m和 n m n最長可達 50位 根據要求計算運算結果並輸出。輸入形式 標準輸入上依次分行輸入以下內容 1.第一行輸入第乙個大整數m。m可能帶有負號,後面是最長可達 50位的數字序列。2.第二行只有乙個字元,可以是 分別代...
C 高精度運算
高精度加法vector int add vector int a,vector int b if t c.push back 1 return c 高精度減法 判斷a b 的大小,保證函式裡面是大的減小的 bool cmp vector int a,vector int b vector int a...
經典例題 高精度(大整數)運算
大整數運算 1.藍橋杯 大整數階乘 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n 解決思路 n 非常大,可以使用陣列儲存各位,a 0 表示最低位,初始化為1,然後迴圈,每一位都乘以2 3 n,根據各位大小判斷是否向前進製,最後逆序輸出各位即可 include include us...