• <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            隨筆 - 87  文章 - 279  trackbacks - 0
            <2025年5月>
            27282930123
            45678910
            11121314151617
            18192021222324
            25262728293031
            1234567

            潛心看書研究!

            常用鏈接

            留言簿(19)

            隨筆分類(81)

            文章分類(89)

            相冊

            ACM OJ

            My friends

            搜索

            •  

            積分與排名

            • 積分 - 216635
            • 排名 - 117

            最新評論

            閱讀排行榜

            評論排行榜

            #include? < iostream >
            #include?
            < string >
            using ? namespace ?std;

            typedef??
            long ? long ?_BigInt;
            const ? int ?BITSIZE? = ? 7000 ;
            const ? int ?EACHBITNUM? = ? 1000000000 ;
            class ?BIGINT
            {
            public :
            ????_BigInt?size;
            ????_BigInt?data[BITSIZE];
            ????BIGINT();
            ????BIGINT(
            string );
            ????BIGINT?
            operator = ( const ?BIGINT & );
            ????
            bool ? operator < ( const ?BIGINT? & );
            ????
            bool ? operator == ( const ?BIGINT? & );
            ????
            bool ? operator > ( const ?BIGINT? & );
            ????
            bool ? operator <= ( const ?BIGINT? & );
            ????
            bool ? operator >= ( const ?BIGINT? & );
            ????
            bool ? operator != ( const ?BIGINT? & );
            ????friend?BIGINT?
            operator + ( const ?BIGINT & ,? const ?BIGINT & );
            ????friend?BIGINT?
            operator - (BIGINT,?BIGINT);
            ????friend?BIGINT?
            operator * ( const ?BIGINT? & ,? const ?BIGINT? & );
            ????
            // friend?BIGINT?operator/(const?BIGINT?&,?const?BIGINT?&);
            ???? void ?print();
            }
            ;

            BIGINT::BIGINT()
            {
            ????size?
            = ? 0 ;
            ????memset(data,?
            0 ,? sizeof (data));
            }

            BIGINT::BIGINT(
            string ?s)
            {
            ????
            int ?i;
            ????
            int ?len? = ?s.length();
            ????
            int ?exp? = ? 1 ;
            ????_BigInt?tmp?
            = ? 0 ;
            ????size?
            = ? 0 ;
            ????memset(data,?
            0 ,? sizeof (data));
            ????
            for ?(i = len;?i >= 1 ;?i -- )
            ????
            {
            ????????tmp?
            += ?(s[i - 1 ]? - ? ' 0 ' )? * ?exp;
            ????????
            if ?(exp? == ?EACHBITNUM / 10 )
            ????????
            {????
            ????????????data[
            ++ size]? = ?tmp;
            ????????????tmp?
            = ? 0 ;
            ????????????exp?
            = ? 1 ;
            ????????}

            ????????
            else
            ????????????exp?
            *= ? 10 ;
            ????}

            ????
            if ?(tmp? != ? 0 )
            ????????data[
            ++ size]? = ?tmp;
            }

            BIGINT?BIGINT::
            operator = ( const ?BIGINT? & a)
            {
            ????
            int ?i;
            ????memset(data,?
            0 ,? sizeof (data));
            ????size?
            = ?a.size;
            ????
            for ?(i = 1 ;?i <= size;?i ++ )
            ????????data[i]?
            = ?a.data[i];
            ????
            return ? * this ;
            }

            void ?BIGINT::print()
            {
            ????
            int ?i;
            ????
            for ?(i = size;?i >= 1 ;?i -- )
            ????????
            if ?(i? != ?size)
            ???????????printf(
            " %.9lld " ,?data[i]);
            ????????
            else
            ???????????printf(
            " %lld " ,?data[i]);
            ????printf(
            " \n " );
            }

            bool ?BIGINT:: operator < ( const ?BIGINT? & a)
            {
            ?????
            int ?i;
            ?????
            if ?(size? < ?a.size)? return ? true ;
            ?????
            if ?(size? > ?a.size)? return ? false ;
            ?????
            for ?(i = 1 ;?i <= size;?i ++ )
            ?????????
            if ?(data[i]? >= ?a.data[i])? return ? false ;
            ?????
            return ? true ;?????
            }

            bool ?BIGINT:: operator == ( const ?BIGINT? & a)
            {
            ?????
            int ?i;
            ?????
            if ?(size? != ?a.size)? return ? false ;
            ?????
            for ?(i = 1 ;?i <= size;?i ++ )
            ?????????
            if ?(data[i]? != ?a.data[i])? return ? false ;
            ?????
            return ? true ;
            }

            bool ?BIGINT:: operator > ( const ?BIGINT? & a)
            {
            ?????
            int ?i;
            ?????
            if ?(size? > ?a.size)? return ? true ;
            ?????
            if ?(size? < ?a.size)? return ? false ;
            ?????
            for ?(i = 1 ;?i <= size;?i ++ )
            ?????????
            if ?(data[i]? <= ?a.data[i])? return ? false ;
            ?????
            return ? true ;??
            }

            bool ?BIGINT:: operator >= ( const ?BIGINT? & a)
            {
            ?????
            return ? ! (( * this )? < ?a);
            }

            bool ?BIGINT:: operator <= ( const ?BIGINT? & a)
            {
            ?????
            return ? ! (( * this )? > ?a);
            }

            bool ?BIGINT:: operator != ( const ?BIGINT? & a)
            {
            ?????
            return ? ! (( * this )? == ?a);
            }

            BIGINT?
            operator + ( const ?BIGINT? & a,? const ?BIGINT? & b)
            {
            ????BIGINT?rnt;
            ????
            int ?i;
            ????
            bool ?t? = ? false ;
            ????_BigInt?tmp;
            ????
            int ?len? = ?a.size? > ?b.size? ? ?a.size?:?b.size;
            ????
            for ?(i = 1 ;?i <= len;?i ++ )
            ????
            {
            ????????tmp?
            = ?a.data[i]? + ?b.data[i];
            ????????
            if ?(t)?tmp? += ? 1 ;
            ????????t?
            = ? false ;
            ????????
            if ?(tmp? >= ?EACHBITNUM)
            ????????
            {
            ????????????tmp?
            -= ?EACHBITNUM;
            ????????????t?
            = ? true ;
            ????????}

            ????????rnt.data[
            ++ rnt.size]? = ?tmp;
            ????}

            ????
            if ?(t)?rnt.data[ ++ rnt.size]? += ? 1 ;?
            ????
            return ?rnt;
            }

            BIGINT?
            operator - (BIGINT?a,?BIGINT?b)
            {
            ????BIGINT?rnt;
            ????
            int ?i;
            ??????
            // ?if?(a?<?b)?return?rnt;
            ???? for ?(i = 1 ;?i <= a.size;?i ++ )
            ????
            {
            ????????
            if ?(a.data[i]? < ?b.data[i])
            ????????
            {
            ????????????a.data[i
            + 1 ] -- ;
            ????????????a.data[i]?
            += ?EACHBITNUM;
            ????????}

            ????????rnt.data[
            ++ rnt.size]? = ?a.data[i]? - ?b.data[i];
            ????}

            ????
            return ?rnt;
            }

            BIGINT?
            operator * ( const ?BIGINT? & a,? const ?BIGINT? & b)
            {
            ????
            int ?i,?j;
            ????BIGINT?rnt;
            ????_BigInt?tmp;
            ????
            for ?(i = 1 ;?i <= a.size;?i ++ )
            ????????
            for ?(j = 1 ;?j <= b.size;?j ++ )
            ????????
            {
            ????????????tmp?
            = ?a.data[i]? * ?b.data[j];
            ????????????rnt.data[i
            + j - 1 ]? += ?tmp;
            ????????????rnt.data[i
            + j]? += ??rnt.data[i + j - 1 ]? / ?EACHBITNUM;
            ????????????rnt.data[i
            + j - 1 ]? %= ?EACHBITNUM;
            ????????}

            ????
            for ?(i = BITSIZE - 1 ;?i >= 1 ;?i -- )
            ????????
            if ?(rnt.data[i]? > ? 0 ? || ?i? == ? 1 )
            ????????
            {
            ????????????rnt.size?
            = ?i;
            ????????????
            break ;
            ????????}

            ????
            return ?rnt;
            }


            int ?main()
            {????
            ????
            int ?n;
            ????
            int ?i;
            ????BIGINT?one(
            " 1 " );
            ????BIGINT?y(
            " 1 " );
            ????cin?
            >> ?n;

            ????
            for ?(i = 1 ;?i <= n;?i ++ )
            ????
            {
            ????????y?
            = ?y? + ?one;
            ????????y.print();
            ????????y?
            = ?y? * ?(y? - ?one);
            ????}

            ????system(
            " pause " );
            ????
            return ? 0 ;
            }

            posted on 2006-09-03 04:29 閱讀(535) 評論(0)  編輯 收藏 引用 所屬分類: 數據結構與算法
            91精品国产91久久久久久蜜臀 | 国产综合成人久久大片91| 欧美麻豆久久久久久中文| 久久精品国产一区二区电影| 久久午夜综合久久| 久久久免费精品re6| 国内精品久久久久久久影视麻豆 | 亚洲欧美成人久久综合中文网| 香蕉久久久久久狠狠色| 精品人妻久久久久久888| 久久国产视频网| 狼狼综合久久久久综合网| 99久久人人爽亚洲精品美女| 日韩AV毛片精品久久久| 久久这里只有精品18| 久久久久亚洲AV成人网| 久久天堂AV综合合色蜜桃网 | 日日狠狠久久偷偷色综合免费| 亚洲午夜久久久影院| 久久久久久亚洲精品不卡| 精品久久久久久亚洲精品 | 久久精品国产亚洲AV嫖农村妇女 | 久久久精品波多野结衣| 99久久人妻无码精品系列| 久久亚洲国产精品成人AV秋霞| 99久久免费只有精品国产| 99久久精品国内| 久久久久久久97| 亚洲精品无码成人片久久| 午夜精品久久久久9999高清| 99久久综合国产精品二区| 狠狠色丁香久久婷婷综| 亚洲国产精品无码久久久不卡| 无码人妻少妇久久中文字幕| 国产香蕉久久精品综合网| 无码人妻少妇久久中文字幕 | 日本免费久久久久久久网站| 国内精品久久久久| 国产欧美久久一区二区| 品成人欧美大片久久国产欧美...| 免费观看久久精彩视频|