大數運算 支援加減乘運算

2021-08-08 12:55:42 字數 2279 閱讀 9345

本程式僅為演示,僅供參考,沒有考慮負數情況。

優點: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...