亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來(lái)到蟲(chóng)蟲(chóng)下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲(chóng)蟲(chóng)下載站

?? 高精度.txt

?? 上次站長(zhǎng)沒(méi)用!今次打包幾個(gè)ACM的資料在上傳
?? TXT
?? 第 1 頁(yè) / 共 2 頁(yè)
字號(hào):
//高精度最終較完美解[url]http://acm.zjnu.cn/show.asp?tab=arithmetic&id=67[/url]
//done by smallrain . 05,4,7

#include<iostream>
#include<fstream>
#include<string>
#include"time.h"
using namespace std;


struct cresi                                    //此結(jié)構(gòu)體用來(lái)存余數(shù),并打印
{
    int *p_resi;                                //指向內(nèi)存中存放余數(shù)的連續(xù)空間
    int len_resi;                                //余數(shù)存放空間的長(zhǎng)度
    void print()                                //打印余數(shù)
    {
        for(int i=len_resi-1;i>=0;i--)
        {
            cout<<p_resi[i];
        }
        cout<<endl;
    }
};///:p

struct cresi resi;                              //定義結(jié)構(gòu)體全局變量,用于處理高精度整數(shù)除法的余數(shù)
    
class cata                                      //定義高精度類,可實(shí)現(xiàn)任意大數(shù)的四則運(yùn)算
{
public:

    cata(int Max=10);
    ~cata();
    bool empty() const;

    int length() const;                          //存放高精度數(shù)的數(shù)組的長(zhǎng)度

    void printcata(ofstream &out) const;
    void pricata();                              //打印高精度數(shù)
    void del_first();                            //刪除高精度數(shù)組的首單元

    cata &getdata(const string &x);              //由于數(shù)據(jù)讀入用的是string,把字符串轉(zhuǎn)化為整形數(shù)組,并且完成逆置

    cata &operator +(const cata &y);            //實(shí)現(xiàn)高精度的加法,結(jié)果存放于被加數(shù)中,且返回被加數(shù)對(duì)象的指針
    cata &operator -(const cata &y);            //實(shí)現(xiàn)高精度的減法,結(jié)果存放于被減數(shù)中,且返回被減數(shù)對(duì)象的指針
    cata &operator *(const cata &y);            //實(shí)現(xiàn)高精度的乘法,結(jié)果存放于被乘數(shù)中,且返回被乘數(shù)對(duì)象的指針
    cata &operator /(const cata &y);            //實(shí)現(xiàn)高精度的除法,結(jié)果存放于被除數(shù)中,且返回被除數(shù)對(duì)象的指針
    cata &operator =(const cata &y);            //重載賦值運(yùn)算符,用以實(shí)現(xiàn)cata對(duì)象的賦值

    friend bool dispose_boundary(const cata &m,const cata &n);        //處理邊界情況
    friend int compare_cata(const cata &x,const cata &y);            //比較兩個(gè)高精度數(shù)的大小
    friend void result(cata &m,cata &n,cata &result_combination,cata &result_catalan); //產(chǎn)生大組合數(shù)結(jié)果和catalan數(shù)結(jié)果
    friend void boundary_result(cata &m,cata &result_combination,cata &result_catalan); //在邊界條件下產(chǎn)生上述結(jié)果

private:
    int n;                                      //存放高精度數(shù)的數(shù)組的長(zhǎng)度
    int displacement;                            //數(shù)組偏移量,用于除法移位
    int MaxSize;
    int *data;                                  //用于申請(qǐng)動(dòng)態(tài)空間,指向存放高精度數(shù)的數(shù)組
};///:p

inline cata::cata(int Max)                      //構(gòu)造函數(shù)
{
    MaxSize=Max;
    data=new int[MaxSize];
    n=0;
    displacement=0;
}///:p

inline cata::~cata()                            //析構(gòu)函數(shù)
{
    delete [] data;
}///:p

inline bool cata::empty() const                  //判斷是否非空,在本程序中無(wú)用
{
    return n==0;
}///:p

inline bool dispose_boundary(const cata &m,const cata &n)
{
    if(((1==n.n)&&(n.data[0]==0))||compare_cata(m,n)==2)
    {
        return false;
    }
    else
    {
        return true;
    }
}///:p

inline int cata::length() const                  //返回高精度數(shù)的長(zhǎng)度,即是數(shù)組長(zhǎng)度
{
    return n;
}///:p

inline void cata::del_first()                    //刪除存放高精度數(shù)的數(shù)組的首單元,在除法中運(yùn)用
{
    /*for(int i=1;i<n;i++)
    {
        data[i-1]=data[i];
    }*/
    displacement+=1;
    n-=1;
}///:p

void cata::pricata()                            //打印高精度數(shù)到控制臺(tái)
{
    for(int i=n-1;i>=0;i--)
    {
        cout<<data[i];
    }
    cout<<endl;
}///:p

cata &cata::getdata(const string &str)          
{
    int len_int=str.length(),len_str=len_int;    
    if(this->n!=len_int)
    {
        delete [] data;
        data=new int [len_int];
        if(NULL==data)
        {
            cout<<"the error take place in getdata()"<<endl;
            exit(1);
        }
    }
    for(int j=0;j<len_int;j++)                  //完成string到int型數(shù)組的轉(zhuǎn)換,并且逆置
    {
        data[j]=(int)(str[len_str-1-j]-48);
    }
    n=len_int;
    return *this;
}///:p

cata &cata::operator +(const cata &y)
{
    int len_x=length(),len_y=y.length();
    int len_max=len_x>len_y? len_x:len_y,len_min=len_x<len_y? len_x:len_y;
    int *result=new int[len_max+1];            //result存放高精度加法結(jié)果
    for(int i=0;i<len_max+1;i++)                //將result全部置0
    {
        result[i]=0;
    }
    int carry=0,temp_1,temp_2;                  //carry為進(jìn)位
    for(i=0;i<len_min;i++)                      //按位加,分兩步做
    {
        temp_2=temp_1=data[i]+y.data[i]+carry;
        carry=temp_1/10;
        if(carry)
            result[i]=temp_2%10;
        else result[i]=temp_2;
    }
    if(len_x>=len_y)
    {
        for(i=len_min;i<len_max;i++)
        {
            temp_2=temp_1=data[i]+result[i]+carry;
            carry=temp_1/10;
            if(carry)
            {
                result[i]=temp_2%10;
            }
            else 
            {
                result[i]=temp_2;
            }
        }
    }
    else
    {
        for(i=len_min;i<len_max;i++)
        {
            temp_2=temp_1=y.data[i]+result[i]+carry;
            carry=temp_1/10;
            if(carry)
            {
                result[i]=temp_2%10;
            }
            else 
            {
                result[i]=temp_2;
            }
        }
    }
    if(carry)
    {
        result[len_max]=carry;
        n=len_max+1;
    }
    else
    {
        n=len_max;
    }
    int *temp=result;                            //指針的交換
    result=data;                                
    data=temp;
    delete [] result;
    return *this;
}///:p

cata &cata::operator -(const cata &y)
{
    int len_max=length(),len_y=y.length();
    int *result=new int [len_max];              //result用于存放高精度減法的結(jié)果
    if(NULL==result)
    {
        cout<<"the error take place in -"<<endl;
        exit(1);
    }
    for(int i=0;i<len_max;i++)
    {
        result[i]=0;
    }
    int borrow=0,temp;                            //borrow位借
    int displace=y.displacement;
    for(i=0;i<len_y;i++)                        //按位減,分兩步做
    {
        temp=data[i]+10-y.data[i+displace]-borrow;
        if(temp>=10)
        {
            temp=temp-10;
            borrow=0;
        }
        else
        {
            borrow=1;
        }
        result[i]=temp;
    }
    for(int j=len_y;j<len_max;j++)
    {
        temp=data[j]+10-result[j]-borrow;
        if(temp>=10)
        {
            temp=temp-10;
            borrow=0;
        }
        else
        {
            borrow=1;
        }
        result[j]=temp;
    }
    n=len_max;
    i=1;
    while(result[n-i]==0&&i<n)                        //由于減法會(huì)在高位產(chǎn)生0,i的回溯相當(dāng)于去掉無(wú)用的高位0
    {
        i++;
    }
    n=n-i+1;                                          //i回溯后,重新計(jì)算n
    int *temp_sub=result;                              //交換指針,保證結(jié)果實(shí)在*this對(duì)象中
    result=data;
    data=temp_sub;
    delete [] result;
    return *this;
}///:p

cata &cata::operator *(const cata &y)
{
    int len_x=length(),len_y=y.length();
    int len_z=len_x+len_y;
    int *result=new int [len_z];                      //result存放高精度*的結(jié)果
    int *temp=new int [len_z];
    if(NULL==result||NULL==temp)
    {
        cout<<"the error take place in *"<<endl;
        exit(1);
    }
    for(int j=0;j<len_z;j++)
    {
        result[j]=0;
    }    
    int carry,temp1,temp2;                            //carry為進(jìn)位
    for(j=0;j<len_y;j++)                              //模擬手工方法,實(shí)現(xiàn)乘法
    {
        for(int i=0;i<len_z;i++)
        {
            temp[i]=0;
        }
        carry=0;
        for(i=0;i<len_x;i++)
        {
            temp2=temp1=data[i]*y.data[j]+carry;
            carry=temp1/10;
            if(carry)
            {
                temp[i+j]=temp2%10;
            }
            else
            {
                temp[i+j]=temp2;
            }
        }
        if(carry)
        {
            temp[len_x+j]=carry;
        }
        int carry_add=0,temp1_add,temp2_add;          //乘法中的加法
        for(i=0;i<len_z;i++)
        {
            temp2_add=temp1_add=temp[i]+result[i]+carry_add;
            carry_add=temp1_add/10;
            if(carry_add)
            {
                result[i]=temp2_add%10;
            }
            else
            {
                result[i]=temp2_add;
            }
        }
    }
    this->n=len_z;
    int i=1;
    while(result[n-i]==0&&i<n) 
    {
        i++;
    }
    n=n-i+1;
    int *temp_change=result;                          //交換指針
    result=data;

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
成人网在线播放| 九九**精品视频免费播放| 欧美一级欧美一级在线播放| 精品在线观看视频| 亚洲一区视频在线观看视频| 国产日产亚洲精品系列| 精品视频在线视频| 成人精品在线视频观看| 久久精品国产久精国产爱| 一区二区三区日本| 中文一区二区在线观看 | 欧美影视一区在线| 国产精品夜夜爽| 免费人成精品欧美精品| 亚洲欧美日韩成人高清在线一区| 精品欧美一区二区在线观看| 欧美人伦禁忌dvd放荡欲情| 91丨porny丨最新| 国产69精品久久777的优势| 久久se精品一区精品二区| 亚洲777理论| 一区二区三区在线免费视频| 一色桃子久久精品亚洲| 久久亚洲一区二区三区明星换脸| 6080午夜不卡| 欧美精品在线观看一区二区| 欧美午夜电影网| 91福利国产精品| 91蝌蚪porny| jlzzjlzz亚洲女人18| 粉嫩一区二区三区在线看| 精品一区二区三区免费毛片爱| 视频一区二区中文字幕| 日韩精品亚洲专区| 日韩av一二三| 日韩和欧美的一区| 亚洲成人av一区二区三区| 亚洲在线观看免费| 樱花影视一区二区| 亚洲综合色网站| 亚洲成人免费看| 午夜精品成人在线视频| 婷婷成人激情在线网| 香蕉乱码成人久久天堂爱免费| 亚洲线精品一区二区三区八戒| 亚洲第一在线综合网站| 亚洲一卡二卡三卡四卡无卡久久| 一级中文字幕一区二区| 亚洲在线视频免费观看| 丝袜美腿亚洲一区| 久久精品国产99国产精品| 国产在线精品一区二区三区不卡| 精品一区二区三区视频在线观看 | 亚洲成人先锋电影| 视频一区在线播放| 久久精品999| 国产精品一区一区| 成人永久免费视频| 99r精品视频| 欧美日韩精品电影| 日韩一区二区不卡| 久久精品在线免费观看| 国产精品高潮呻吟| 亚洲一区二区在线播放相泽| 日本不卡123| 国产高清在线观看免费不卡| 不卡电影免费在线播放一区| 色噜噜久久综合| 日韩一区二区三区在线视频| 久久婷婷久久一区二区三区| 中文字幕亚洲一区二区va在线| 亚洲欧美视频在线观看| 日产精品久久久久久久性色| 国产精品18久久久久久久网站| 99视频精品在线| 欧美夫妻性生活| 精品国产电影一区二区| 国产精品传媒视频| 亚洲高清在线精品| 国产成人亚洲综合a∨猫咪| 91视频xxxx| 日韩欧美一区二区视频| 国产精品久久久久影院亚瑟 | www亚洲一区| 1000部国产精品成人观看| 三级在线观看一区二区| 成人午夜视频网站| 91精品国产综合久久国产大片| 久久精品在这里| 视频在线观看91| 成人aaaa免费全部观看| 制服丝袜中文字幕一区| 中文字幕欧美日韩一区| 日韩黄色免费电影| 色综合天天性综合| 精品久久久久久久人人人人传媒| 亚洲色图一区二区| 久久国内精品视频| 日本高清不卡aⅴ免费网站| 精品国产一二三区| 亚洲1区2区3区视频| 成人黄色在线视频| 日韩免费观看2025年上映的电影| 亚洲欧美日韩国产一区二区三区| 精品中文字幕一区二区| 欧美亚洲国产bt| 国产丝袜美腿一区二区三区| 日韩精品91亚洲二区在线观看| 99久久精品国产网站| 久久久久久一二三区| 日韩和的一区二区| 色呦呦国产精品| 国产精品久久久久久久久晋中 | 欧美在线看片a免费观看| 久久精品人人爽人人爽| 欧美a一区二区| 欧美午夜片在线看| 亚洲少妇屁股交4| 懂色av中文字幕一区二区三区| 精品久久久久久最新网址| 免费xxxx性欧美18vr| 欧美日韩国产三级| 亚洲一区二区av电影| 日本不卡一二三区黄网| 成人性色生活片| 亚洲国产欧美在线| 亚洲一区二区三区中文字幕在线| 成人免费毛片嘿嘿连载视频| 精品成人一区二区| 蜜臀av一区二区在线观看| 欧美日韩一级二级三级| 亚洲一区二区视频在线| 欧美性大战久久久久久久蜜臀| 一区二区三区在线观看动漫| 成人黄色免费短视频| 国产精品蜜臀av| 成人午夜在线播放| 国产精品色在线观看| 国产电影精品久久禁18| 国产夜色精品一区二区av| 国产精品资源网站| 国产亚洲欧洲一区高清在线观看| 国产精品伊人色| 欧美经典一区二区三区| 成人精品gif动图一区| 亚洲欧洲精品一区二区精品久久久| 成年人国产精品| 亚洲免费av网站| 欧美福利电影网| 麻豆极品一区二区三区| 久久亚洲影视婷婷| 国产99久久久精品| 色老头久久综合| 色悠悠久久综合| 欧美成人vps| 国产精品中文字幕日韩精品| 国产精品无码永久免费888| 不卡视频在线看| 一区二区三区免费网站| 欧美日本高清视频在线观看| 美女一区二区久久| 久久精品一区四区| 91视频.com| 天天综合天天综合色| 久久免费的精品国产v∧| 波多野结衣中文字幕一区二区三区| 亚洲欧洲日韩在线| 欧美片在线播放| 黄页视频在线91| 亚洲图片激情小说| 欧美日韩国产一区二区三区地区| 另类调教123区| 亚洲天堂成人网| 日韩一区二区在线播放| 粉嫩av一区二区三区在线播放 | 精品久久久久久久久久久久久久久| 亚洲一区日韩精品中文字幕| 成人妖精视频yjsp地址| 亚洲裸体在线观看| 67194成人在线观看| 欧美日韩免费电影| 久久蜜桃av一区二区天堂| 中文文精品字幕一区二区| 亚洲欧美视频在线观看视频| 亚洲成av人片在线观看无码| 伦理电影国产精品| 色欧美乱欧美15图片| 欧美日韩国产不卡| 亚洲三级在线观看| 欧美日韩国产一区二区三区地区| 激情亚洲综合在线| 亚洲综合色丁香婷婷六月图片| 欧美r级在线观看| 色婷婷久久一区二区三区麻豆| 久久er精品视频| 夜夜夜精品看看| 欧美韩日一区二区三区| 777色狠狠一区二区三区| va亚洲va日韩不卡在线观看| 美腿丝袜在线亚洲一区|