• <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年7月>
            293012345
            6789101112
            13141516171819
            20212223242526
            272829303112
            3456789

            潛心看書研究!

            常用鏈接

            留言簿(19)

            隨筆分類(81)

            文章分類(89)

            相冊

            ACM OJ

            My friends

            搜索

            •  

            積分與排名

            • 積分 - 217940
            • 排名 - 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 閱讀(539) 評論(0)  編輯 收藏 引用 所屬分類: 數(shù)據(jù)結(jié)構(gòu)與算法
            国产福利电影一区二区三区,免费久久久久久久精 | 青草影院天堂男人久久| 亚洲国产婷婷香蕉久久久久久| 国内精品久久久久久麻豆| 久久免费大片| 精产国品久久一二三产区区别| 中文字幕久久久久人妻| 996久久国产精品线观看| 日韩亚洲欧美久久久www综合网 | 亚洲国产精品久久久天堂| 久久亚洲国产成人精品性色| 久久夜色精品国产亚洲| 无码任你躁久久久久久| 日日噜噜夜夜狠狠久久丁香五月 | 久久丫忘忧草产品| 久久国产精品成人免费| 亚洲人成网站999久久久综合 | 亚洲欧美日韩久久精品第一区| 99久久无色码中文字幕| 国产精品美女久久福利网站| 久久亚洲国产欧洲精品一| 亚洲中文字幕无码一久久区| 亚洲综合久久综合激情久久| AV无码久久久久不卡蜜桃| 精品久久久久久久久久久久久久久| 亚洲综合久久久| 国产精品无码久久久久| 99999久久久久久亚洲| 久久精品国产亚洲av麻豆图片| 久久久久九九精品影院| 国产精品久久99| 2021精品国产综合久久| 亚洲精品美女久久777777| 久久综合视频网站| 久久久精品视频免费观看| 精品无码久久久久久久动漫| 国产69精品久久久久9999| 大美女久久久久久j久久| 青青草国产精品久久| 超级碰久久免费公开视频| 国产69精品久久久久9999|