__int128的输入输出(快读快输)
引言:__int128不能用\(cin\)\(cout\)或\(scanf\)\(printf\)。
快读
思想:把每一个字符读入,组成数字。
int read(){
int x = 0,y = 1;//x代表那个数的绝对值,y代表符号
char ch = getchar();
while(ch < '0'||ch > '9'){//如果字符不是数字
if(ch == '-') y = -1;//负号
ch = getchar();
}
while(ch >= '0'&&ch <= '9'){//如果字符是数字
x = x*10+ch-48;//加到x中
ch = getchar();
}
return x*y;
}
快输
思路:转成字符输出
void print(int x){
if(x < 0){//如果为负,先输出符号
cout << '-';
x = -x;
}
if(x > 9) print(x/10);//递归输出前面
putchar(x%10+'0');//输出最后一位
}