1.大整數加法
用陣列來儲存大整數的每一位,然後模擬人工運算,用for迴圈按位運算和處理,原理十分簡單,直接上模板。
#include#includeusing
namespace
std;
//大整數加法
vector add(vector& a,vector&b)
if(t) c.push_back(1
);
returnc;}
intmain()
2.大整數減法
#include#includeusing
namespace
std;
//判斷a是否大於等於b
bool cmp(vector& a,vector&b)
return1;
}//c = a - b
vector sub(vector& a,vector&b)
else t = 0
; }
while(c.size() > 1 && c.back() == 0
) c.pop_back();
returnc;}
//c = a + b
vector add(vector& a,vector&b)
if(t) c.push_back(1
);
returnc;}
intmain()
else
return0;
}
3.大整數乘法
#include #includeusing
namespace
std;
vector
mul(vector a, vectorb)
while (c.size() > 1 && !c.back()) c.pop_back();
returnc;}
intmain()
4.大整數除法
#include #include#include
using
namespace
std;
vector
div(vector &a, int b, int &r)
reverse(c.begin(), c.end());
while (c.size() > 1 && c.back() == 0
) c.pop_back();
returnc;}
intmain()
基礎演算法 高精度 大整數
學習平台 acwing 高精度的數一般比較大,普通的整型變數存不下,所以存在string裡或者char裡 模擬數學的普通加法 len a 10 9 len b 10 9 為了方便地進行進製操作,將大整數的每一位倒著存放在整形陣列int裡 string a,b vectora,b cin a b fo...
經典例題 高精度(大整數)運算
大整數運算 1.藍橋杯 大整數階乘 問題描述 輸入乙個正整數n,輸出n 的值。其中n 1 2 3 n 解決思路 n 非常大,可以使用陣列儲存各位,a 0 表示最低位,初始化為1,然後迴圈,每一位都乘以2 3 n,根據各位大小判斷是否向前進製,最後逆序輸出各位即可 include include us...
高精度 C 中大整數運算
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...