/*寫了乙個計算大數四則運算的類(乘法和除法並為寫出來,讀者可以自己相似推導).
這個類的思想是用字串陣列表示大數,
這並不是最好最有效的方法,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...