用字串陣列實現的大數運算

2021-04-03 00:33:28 字數 1177 閱讀 5923

/*寫了乙個計算大數四則運算的類(乘法和除法並為寫出來,讀者可以自己相似推導).

這個類的思想是用字串陣列表示大數,

這並不是最好最有效的方法,but it works :)

i_love_cpp*/

class clargenumbers

~clargenumbers()

clargenumbers(clargenumbers& n)

const char* operator + (clargenumbers& n)

else if(i<0) ntemp = n.m_pstrin[j] + n; 

else if(j<0) ntemp = m_pstrin[i] + n;   

else ntemp = m_pstrin[i] + n.m_pstrin[j] + n - '0';

n = 0;

if(ntemp > '9')

m_pstrout[k] = ntemp;

--i;--j;++k;

}m_pstrout[k] = 0;//字串結束符

//反轉字串

char a;

for(i = 0; i < k/2; ++i)

return m_pstrout;

}const char* operator - (clargenumbers& n)

//else if(i<0)這種情況不會出現

else if(j<0) ntemp = m_pstrin[i] - n;

else ntemp = m_pstrin[i] - n.m_pstrin[j] - n;

if(ntemp < '0')

--i;--j;++k;

}m_pstrout[k] = 0;//字串結束符

//反轉字串

char a;

for(i = 0; i < k/2; ++i)

return m_pstrout;

}protected:

clargenumbers();

private: 

clargenumbers& operator = (clargenumbers&);

private:

char* m_pstrin;

char* m_pstrout;

int   m_nlen;

};

類方法用字串實現運算子的過載

運算子的過載 對已有的運算子重新進行定義,賦予其另一種功能,以適應不同的資料型別。本 實現的成員函式有建構函式 拷貝建構函式 運算子 運算子 類內實現物件加物件,物件加字串,類外實現字串加物件 析構函式 運算子 運算子 運算子 輸出符 類外實現 兩個類外實現的函式用了友元函式,類內由於有this指標...

大數問題 用字串解決大數相加和相乘

1 加法 assume m is bigger than n.char add char a,char b,int m,int n 將由純數字組成的結果轉換為字串,並去除首部可能還存在的零。c m 1 0 for int i 0 i m 1 i c i 0x30 if c 0 0x30 for in...

大數問題 用字串解決大數相加和相乘

1 加法 assume m is bigger than n.char add char a,char b,int m,int n 將由純數字組成的結果轉換為字串,並去除首部可能還存在的零。c m 1 0 for int i 0 i m 1 i c i 0x30 if c 0 0x30 for in...