-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathverylonginteger.h
More file actions
36 lines (28 loc) · 981 Bytes
/
Copy pathverylonginteger.h
File metadata and controls
36 lines (28 loc) · 981 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
#ifndef VERYLONGINTEGER_H
#define VERYLONGINTEGER_H
#include <QVector>
class VeryLongInteger
{
public:
VeryLongInteger();
VeryLongInteger(const QVector<qint64>& digits);
VeryLongInteger(const qint64& initialValue);
VeryLongInteger(const QString& stringValue);
public:
bool operator <(const VeryLongInteger& right) const;
bool operator >(const VeryLongInteger& right) const;
bool operator ==(const VeryLongInteger& right) const;
bool operator !=(const VeryLongInteger& right) const;
VeryLongInteger& operator +=(const VeryLongInteger& right);
VeryLongInteger& operator -=(const VeryLongInteger& right);
QString toString() const;
bool isNegative() const;
private:
qint64 digit(int position) const;
void setDigit(int position, qint64 value);
int compareModule(const VeryLongInteger& right);
private:
QVector<qint64> _digits;
bool _negative;
};
#endif // VERYLONGINTEGER_H