1、大数加法模板
#include<iostream>
using namespace std;
inline void read(__int128 &x)
{
x = 0;
int f = 1;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-')
f = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9')
{
x = x*10 + ch-'0';
ch = getchar();
}
x *= f;
}
inline void print(__int128 x)
{
if(x < 0)
{
putchar('-');
x = -x;
}
if(x > 9)
print(x/10);
putchar(x%10 + '0');
}
int main()
{
__int128 a,b;
read(a);read(b);
print(a+b);
return 0;
}
2、大数乘法模板
#include<iostream>
using namespace std;
inline void read(__int128 &x)
{
int f = 1;
x = 0;
char ch = getchar();
while(ch < '0' || ch > '9')
{
if(ch == '-')
f *= -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9')
{
x = x*10 + ch-'0';
ch = getchar();
}
x *= f;
}
inline void print(__int128 x)
{
if(x < 0)
{
putchar('-');
x = -x;
}
if(x > 9)
print(x/10);
putchar(x%10 + '0');
}
int main()
{
__int128 a,b;
read(a);read(b);
print(a * b);
return 0;
}
经测验,__int128最多接受38位数字