-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathBigInteger.cpp
More file actions
73 lines (73 loc) · 1.86 KB
/
Copy pathBigInteger.cpp
File metadata and controls
73 lines (73 loc) · 1.86 KB
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
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
#include<iostream>
#include"BigInteger.h"
BigInteger::BigInteger(){
}
BigInteger::BigInteger(const std::string& number) {
try{
for(int i = 0; i < number.length(); ++i){
if((int)number[i] < 48 || (int)number[i]> 57){
throw "Error";
}
this->Number.push((int)(number[i] - 48));
this->length++;
}
}
catch(const char* x){
std::cout<<x<<": isn`t number ";
exit(EXIT_FAILURE);
}
}
void BigInteger::printBigInteger() {
this->Number.print();
std::cout<<std::endl;
}
BigInteger& BigInteger::operator=(const BigInteger& obj){
if(this == &obj)
return *this;
this->Number = obj.Number;
return *this;
}
BigInteger operator+(const BigInteger& bgi1,const BigInteger& bgi2){
BigInteger bgi;
bgi.Number = bgi.Number.sum(bgi1.Number,bgi2.Number);
return bgi;
}
BigInteger operator*(const BigInteger& bgi1,const BigInteger& bgi2)
{
BigInteger bgi;
bgi.Number = bgi.Number.mul(bgi1.Number,bgi2.Number);
return bgi;
}
BigInteger operator-(const BigInteger& bgi1,const BigInteger& bgi2){
BigInteger bgi;
bgi.Number = bgi.Number.sub(bgi1.Number,bgi2.Number);
return bgi;
}
BigInteger operator/(const BigInteger& bgi1,const BigInteger& bgi2){
BigInteger bgi;
bgi.Number = bgi.Number.div(bgi1.Number,bgi2.Number);
return bgi;
}
BigInteger operator%(const BigInteger& bgi1,const BigInteger& bgi2){
BigInteger bgi;
bgi.Number = bgi.Number.res(bgi1.Number,bgi2.Number);
return bgi;
}
bool operator>(BigInteger& bgi1,BigInteger& bgi2)
{
BigInteger bgi;
bool bl = bgi.Number.isGreat(bgi1.Number,bgi2.Number);
return bl;
}
bool operator<(BigInteger& bgi1,BigInteger& bgi2)
{
BigInteger bgi;
bool bl = bgi.Number.isLess(bgi1.Number,bgi2.Number);
return bl;
}
bool operator==(BigInteger& bgi1,BigInteger& bgi2)
{
BigInteger bgi;
bool bl = bgi.Number.isEqual(bgi1.Number,bgi2.Number);
return bl;
}