本程式僅為演示,僅供參考,沒有考慮負數情況。
優點:1、支援任意數量的數字,直到記憶體不足;
2、c++運算子過載,方便使用。
不足:1、沒有實現除法運算
1#pragma once
2 #include 3 #include 4 #include 56
using
namespace
std;78
class
bignum
9;
1 #include "呼叫情況bignum.h"2
3bignum::bignum()46
7 bignum::bignum(int
num)811
12 bignum::bignum(const
char*num)
1316
17 bignum bignum::operator=(int
num)
18;
2021 sprintf(s, "%d"
, num);
22 *this =s;
2324
return *this
; 25}26
27 bignum bignum::operator=(const
char*num)
2835
36return *this
; 37}38
39 bignum bignum::operator+(const bignum& num) const
4053
54if(i
5558
59 carry = x / 10
; 60
61 tmp.m_vnumber.push_back(x % 10
);
62}
6364
return
tmp; 65}
6667 bignum bignum::operator-(const bignum& num) const
6880
81if(x >= 0
) 82
85else
86
90tmp.m_vnumber.push_back(x);91}
9293
tmp.rmleadingzero();
9495
return
tmp;96}
9798 bignum bignum::operator*(const bignum& num) const
99112
else
113116
}117
}118
119for(int i = 0; i < tmp.size() - 1; i++)
120
124125
return
tmp;
126}
127128 std::string bignum::str() const
129137
138return
res;
139}
140141
int bignum::size() const
142145
146int bignum::get(int index) const
147152
153return
m_vnumber[index];
154}
155156
void
bignum::rmleadingzero()
157166
else
167170
}171
}172
173 istream& operator>>(istream &in, bignum&num)
174182
183 ostream& operator
<
184
1 #include 2運算結果3 #include "
bignum.h"4
5using
namespace
std;67
int main(int argc, char **argv)
8
參考**:
C 加減乘運算
using system namespace 加減乘除 return array private static int sub int array1,int array2 return array private static int mup int array1,int array2 return...
大數運算 模加減運算
一 vs平台 利用c語言對大數運算中的模加減運算進行了編碼。二 編碼思想 條件 大數a 大數b 模p 結果r 1 加法 首先,判斷a b這兩個大數是否小於模p。如果a和b都小於模p,則 若a b p,r a b p 若a b 如果a和b其中有乙個大於模p或者都大於模p,先將a或b減去p,直到a和b都...
加減運算 Python運算子可不只有加減乘除
c 0 加 c a b 31 減 c a b 11 乘 c a b 210 除 c a b 2.1 求餘數 c a b 1 冪 次方 a 2 b 3 c a b 8 取整數,向下取接近商的整數 c 9 2 4 c 9 2 5 中的if else 是指 如果,滿足條件,做什麼事,否則,做其他事 a 2...