Problem A 大整數的加法運算

2021-08-01 21:39:47 字數 1101 閱讀 2717

我們知道,c++中的整數型別,如short、int、long和long long等都有確定的表示範圍,超大的整數是不能表示的。請定義乙個類decimal,用於表示大整數,並實現如下方法:

1.根據給出的main函式定義的建構函式。

2. 過載加法(「+」)運算子,可以實現乙個decimal物件與另乙個decimal物件求和、與乙個int型別的數值求和。

3. 過載字首自增運算子。

4. 過載下標運算子,用於求當前物件的指定下標位置的數字。

5. 過載輸入、輸出運算子。

輸入3個數,前2個可能會超出unsigned long long的表示範圍,最後1個是乙個int型別的非負整數。

不考慮負數。

見樣例。

#include #include #include #include #include using namespace std;

const int maxn = 10000 + 10;

class decimal

decimal(int x)

}decimal(string s)

}decimal operator + (const decimal &d)

if (n < d.n)

}else

}ans.n = max(n, d.n);

if (base == 1)

return ans;

}decimal operator + (int n)

decimal& operator ++ ()

decimal operator ++ (int)

int getlength()

int operator (int i)

friend istream &operator >> (istream &in, decimal &d)

return in;

}friend ostream &operator << (ostream &os, const decimal &d)

return os;

}};int main()

cout

}

大整數加法

include include include include define debug void plus char char char int is valid char void reverse char int main int argc,char argv up loop 0 strcpy...

大整數加法

方法 這裡用了資料結構棧,實際上棧更方便實現高精度加法。步驟 1 第乙個資料加數按輸入順序 高位到低位 入棧1。此時棧頂為最低位 2 第二個資料加數按輸入順序 高位到低位 入棧2。此時棧頂為最低位 3 將棧1 棧2均pop出棧頂做加法,並考慮進製,結果入棧3,這時棧3正好是低位入棧。4 處理多餘的棧...

大整數加法

include include include define max len 200 int an1 max len 10 int an2 max len 10 char szline1 max len 10 char szline2 max len 10 int main bool bstarto...