高精度加法
const int N = 1e5 + 5;
int a[N],b[N],c[N]; ///数组是按照低位在前的原则存,如123数组存的是321
void add(int *a,int *b)
{
memset(c,0,sizeof c);
int i,j;
for(j = N-1; j > 0; --j) if(a[j] || b[j]) break;
for(i = 0; i <= j ; ++ i)
{
c[i] += a[i] + b[i];
if(c[i] >= 10)
{
c[i+1] += c[i]/10;
c[i] %= 10;
}
}
for(i = N-1; i > 0; -- i) if(c[i] != 0) break;
for(; i >= 0; -- i)
{
printf("%d",c[i]);
} printf("\n");
}
高精度减法
#include<bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
char s[N];
int a[N],b[N],c[N]; ///数组是按照低位在前的原则存,如123数组存的是321
bool check(int *a,int *b) //判断a是否大于b<