zoukankan      html  css  js  c++  java
  • 关于_int128

    转载来自:https://blog.csdn.net/HumveeA6/article/details/79806869

    这种类型只有部分GCC编译器支持。经测试,正常运算与普通int无异,但是输入输出时无论是cin,cout还是printf都会报错,所以必须自己写输入输出函数。
    定义时与别的数据类型并没有什么区别
    eg: __int128 a,b,c;
    输入暂时采用字符串读入方式。


    方法一:重载输出

    std::ostream& operator<<(std::ostream& os, __int128 T) {
        if (T<0) os<<"-";if (T>=10 ) os<<T/10;if (T<=-10) os<<(-(T/10));
        return os<<( (int) (T%10) >0 ? (int) (T%10) : -(int) (T%10) ) ;
    }

    方法二:变为字符串式输入输出


    输入:

    void scan(__int128 &x)//输入
    {
        x = 0;
        int f = 1;
        char ch;
        if((ch = getchar()) == '-') f = -f;
        else x = x*10 + ch-'0';
        while((ch = getchar()) >= '0' && ch <= '9')
            x = x*10 + ch-'0';
        x *= f;
    }

    输出:

    void print(__int128 x)
    {
        if(x < 0)
        {
            x = -x;
            putchar(‘-‘);
        }
         if(x > 9) print(x/10);
        putchar(x%10 + ‘0‘);
    }
  • 相关阅读:
    (DP)codeforces
    (树状数组)POJ
    (树状数组)POJ
    (二维树状数组)POJ
    (模拟)HDU
    (暴力+深搜)POJ
    (判连通+暴力)UVA
    (深搜)UVA
    (暴力+各种算法)hihoCoder
    (尺取法)HDU
  • 原文地址:https://www.cnblogs.com/water-radish/p/9489754.html
Copyright © 2011-2022 走看看