C 第七次作業 實現乙個大整數類BigInt

2021-04-02 14:15:21 字數 1684 閱讀 8300

/*

作業七1. 不同計算機系統中所能表示的證書的範圍不同。如在乙個32位的機器上,

乙個long型別的整數範圍是-231~231-1。在某些應用中,需要處理比這個範圍大得多的整數。

不同的大整數的長度(數字位數)可能差別較大,請基於stl庫中的list容器(雙向鍊錶)實現乙個大整數類bigint.

*/#include "bigint.h"

void main()

//bigint.cpp

#include "bigint.h"

bigint operator+ (bigint a, bigint b)

if ( temp !=0 )

}return c;

}bigint operator- (bigint a,bigint b)}}

iter_end_a = a.minint.end();

iter_end_b = b.minint.end();

int temp=0;

int remainder = 0;

while ( (iter_a != a.minint.end()) || (iter_b != b.minint.end()) )

else

remainder = temp%1000;

temp = temp/1000;

if ( remainder < 0 )

c.minint.push_back(remainder);

c._size += 3;

c._minintsize++;

if(iter_a != iter_end_a) iter_a++;

if(iter_b != iter_end_b) iter_b++;

}if (flag==0) c.changemark();

return c;

}void bigint::changemark()

.//bigint.h

#include

#include

#include

#include

using namespace std;

typedef list::iterator intiterlist;

class bigint ;

bigint(const bigint& other):minint(other.minint),_minintsize(other._minintsize),_size(other._size){};

bigint(string);

int size()

friend bigint operator+ (bigint,bigint);

friend bigint operator- (bigint,bigint);

int minintsize()

void print();

void changemark();

private:

listminint;

int _minintsize;

int _size;

};inline void bigint::print()

cout << endl;

}inline bigint::bigint(string str):_size(0)

minint.push_back (temp);

temp = 0;}}

c 第七次作業

定義乙個有10個的陣列a,將陣列a中的所有素數放在陣列b,再對陣列b排序 include using namespace std void sort int p 陣列排序 bool prime int x 素數判斷 void print int p 輸出陣列 int main int b 10 i,...

C 第七次作業

需改進完善之處 1.關於介面可再優化 2.介面放大時,無法自動聚焦 按鈕等控制項無法均勻分布在螢幕上 3.計算結果示值無法像正常計算器那樣 如 standard answer 1 200,answer 2 200.00 4.計算準確率有待提高 5.部分有待模組化 6.有關其他功能 開方乘方等 有待增...

c 第七次上機作業

專案1 陣列素數排序 定義乙個有10個的陣列a,將陣列a中的所有素數放在陣列b,再對陣列b排序 include using namespace std void sort int p,int n 陣列排序 bool prime int x 素數判斷 void print int p,int n 輸出...