这是给c++党的一点福利吧!(python根本不用写高精度)
对于一个懒懒的,不想写高精的人(就是我),每次都会遭遇到答案爆$long$ $long$的危险
比如说这道题:
最后的$23-25$的两个点,$long$ $long$甚至$unsigned$ $long$ $long$都无法满足,难道真的要手打高精度了吗?
不,我们有$\_$$\_$$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; int f=1; char ch=getchar(); while(ch<'0' || ch>'9') { if(ch=='-') f=-1; ch=getchar(); } while(ch>='0' && ch<='9') x=(x<<1)+(x<<3)+(ch^48),ch=getchar(); return x*f; } __int128 n=read();
其实也是把快输改了一改
void write(__int128 x) { if(x<0) x=-x,putchar('-'); if(x>9) write(x/10); putchar(x%10+'0'); } __int128 n; n=... write(n);
$\_$$\_$$int$$128$是好,但是用的时候一定一定要注意空间限制!
当然,$\_$$\_$$int$$128$并不能完全取代高精,所以如果$\_$$\_$$int$$128$过不掉时,还是老老实实打高精吧!
转载自: https://www.cnblogs.com/201929-whx/p/17062823.html