__int128:懒人的福音

前言

这是给c++党的一点福利吧!(python根本不用写高精度)

对于一个懒懒的,不想写高精的人(就是我),每次都会遭遇到答案爆long  long的危险

比如说这道题:

题目传送门

最后的2325的两个点,long  long甚至unsigned  long  long都无法满足,难道真的要手打高精度了吗?

不,我们有__int128

那么这到底是什么 可以吃吗 

关于__int128

先来看看一些常见的整数变量能存的范围与占用的字节:

类型名称 占用字节 存储范围
int 4 231 ~ 2311
long  long 8 263 ~ 2631
unsigned  long  long 8 0 ~ 2641

再来看看__int128

存储范围为2127 ~ 21271,但是占用了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);
复制代码

 

写在最后

__int128是好,但是用的时候一定一定要注意空间限制!

当然,__int128并不能完全取代高精,所以如果__int128过不掉时,还是老老实实打高精吧!

posted @   201929  阅读(526)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· winform 绘制太阳,地球,月球 运作规律
· TypeScript + Deepseek 打造卜卦网站:技术与玄学的结合
· AI 智能体引爆开源社区「GitHub 热点速览」
· Manus的开源复刻OpenManus初探
· 写一个简单的SQL生成工具
点击右上角即可分享
微信分享提示