const int N = 55;
ll a[N], b[N];
void print(ll a[])
{
int idx = N - 1;
while (idx && !a[idx])idx--;//去掉前导零
while (idx >= 0)printf("%lld", a[idx--]);
cout << endl;
}
int cmp(ll a[], ll b[])
{
f(i, N - 1, 0)
{
if (a[i] > b[i])return 1;
else if (a[i] < b[i])return -1;
}
return 0;
}
void add(ll a[], ll b[])
{
static ll c[N];
memset(c, 0, sizeof c);
ll t = 0;
f(i, 0, N - 1)
{
t += a[i] + b[i];
c[i] = t % 10;
t /= 10;
}
memcpy(a, c, sizeof c);
}
void mul(ll a[], ll b)
{
static ll c[N];
memset(c, 0, sizeof c);
ll t = 0;
f(i, 0, N - 1)
{
t += a[i] * b;
c[i] = t % 10;
t /= 10;
}
memcpy(a, c, sizeof c);
}
int mod(string a, int b) //高精度a除以单精度b
{
int d = 0ll;
for (int i = 0; i < a.size(); i++) d = (d * 10 + (a[i] - '0')) % b; //求出余数
return d;
}
c++数组模拟高精度加法乘法,大数取模
最新推荐文章于 2023-03-01 09:54:56 发布