#include <bits/stdc++.h>
using namespace std;
#define fileIO(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout);
template <typename T>
T read(){
T res = 0, sign = 1;
char ch = getchar();
while(ch < '0' || ch > '9'){
if(ch == '-') sign = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
res = (res << 1) + (res << 3) + (ch - '0');
ch = getchar();
}
return sign * res;
}
template <typename T>
void write(T n){
if(n < 0){
putchar('-');
n = -n;
}
if(n > 9) write(n / 10);
putchar(n % 10 + '0');
}
int main(){
__int128 a, b;
a = read<__int128>();
b = read<__int128>();
write<__int128>(a + b);
cout << endl;
write<__int128>(a - b);
cout << endl;
write<__int128>(a * b);
cout << endl;
write<__int128>(a / b);
cout << endl;
write<__int128>(a % b);
cout << endl;
return 0;
}
12345678901234567890
1234567890
12345678902469135780
12345678900000000000
15241578751714678875019052100
10000000001
0
-1112131415
1617181910
505050495
-2729313325
-1798518805880702650
0
-1112131415
注意:如果想把long long
相乘的结果转成__int128
要先强转一下类型
用__int128
解决A + B Problem
#include <bits/stdc++.h>
using namespace std;
#define fileIO(s) freopen(s".in", "r", stdin), freopen(s".out", "w", stdout);
#define int __int128
int read(){
int res = 0, sign = 1;
char ch = getchar();
while(ch < '0' || ch > '9'){
if(ch == '-') sign = -1;
ch = getchar();
}
while(ch >= '0' && ch <= '9'){
res = (res << 1) + (res << 3) + (ch - '0');
ch = getchar();
}
return sign * res;
}
void write(int n){
if(n < 0){
putchar('-');
n = -n;
}
if(n > 9) write(n / 10);
putchar(n % 10 + '0');
}
signed main(){
int a, b;
a = read();
b = read();
int ans = a + b;
write(ans);
return 0;
}