__int128:懒人的福音
前言
对于一个懒懒的,不想写高精的人(就是我),每次都会遭遇到答案爆$long$ $long$的危险
比如说这道题:
题目传送门
最后的$23-25$的两个点,$long$ $long$甚至$unsigned$ $long$ $long$都无法满足,难道真的要手打高精度了吗?
不,我们有$\_$$\_$$int$$128$!
那么这到底是什么 可以吃吗 ?
关于$\_$$\_$$int$$128$
先来看看一些常见的整数变量能存的范围与占用的字节:
类型名称 | 占用字节 | 存储范围 |
$int$ | $4$ | $-2^{31}$ ~ $2^{31}-1$ |
$long$ $long$ | $8$ | $-2^{63}$ ~ $2^{63}-1$ |
$unsigned$ $long$ $long$ | $8$ | $0$ ~ $2^{64}-1$ |
再来看看$\_$$\_$$int$$128$
存储范围为$-2^{127}$ ~ $2^{127}-1$,但是占用了$128$字节
虽然内存占的多,但存储范围依然多
那么如何使用?
输入
其实就是把快读输入改了一改
__int128 read() { __int128 x=0; char ch=getchar(); while(ch<"0" || ch>"9") ch=getchar(); while("0"<=ch && ch<="9") x=x*10+ch-"0",ch=getchar(); return x; }
...
__int128 n=read();