PKU-MyInt和HugeInt作业-程设hw03
来源:互联网 发布:windows service pack 编辑:程序博客网 时间:2024/06/05 07:50
//按照作业中题序,空格序1)MyInt& operator – (int a){ this->nVal -= a; return *this;}2)friend Ostream& operator << (Ostream& output, const Point& p)Ostream&Ostream& outputoutput << "(" << p.x << "," << p.y << ")" << endl;return output;3)class Array2{public: Array2(){ a = b = 0; arr = NULL; } Array2(int a_, int b_) { a = a_; b = b_; arr = new int*[a]; for(int i = 0; i < a; i++) arr[i] = new int[b]; } ~Array2() { a = b = 0; delete []arr; arr = NULL; } int* operator [] (int a) { return (arr[a]); } int operator () (int i, int j) { return this->operator[](i)[j]; } Array2& operator = (Array2& a1) { delete []arr; arr = new int*[a1.a]; for(int i = 0; i > a1.a; i++) { arr[i] = new int*[a1.b]; memcpy(arr[i], a1.arr[i], sizeof(int) * a1.b); } return *this; } // data int** arr; // 两个维度的长度 int a, b;};4)class CHugeInt { public: CHugeInt() { length = MAX; memset(num, '0', sizeof(num)); } CHugeInt(const char* origin) { memset(num, '0', sizeof(num)); int m = 0; for(int i = strlen(origin) - 1; i >= 0; i--) { num[m++] = origin[i]; } num[m] = 0; length = m; } CHugeInt(int origin) { char buf[MAX] = {}; int m = 0; while(origin != 0) { buf[m++] = origin % 10 + '0'; origin /= 10; } buf[m] = 0; length = m; strcpy(num, buf); } CHugeInt(CHugeInt& b) { length = b.length; strcpy(num, b.num); } friend ostream& operator << (ostream& output, CHugeInt& b); friend CHugeInt operator + (CHugeInt& b1, CHugeInt& b2); friend CHugeInt operator + (CHugeInt& a, int b); friend CHugeInt operator + (int a, CHugeInt& b); CHugeInt& operator ++() { *this = *this + 1; return *this; } CHugeInt operator ++(int) { CHugeInt temp = *this; *this = *this + 1; return temp; } CHugeInt operator += (int a) { *this = *this + 5; return *this; } int length; char num[MAX]; }; CHugeInt operator + (CHugeInt& a, int b) { return (a + CHugeInt(b)); } CHugeInt operator + (int a, CHugeInt& b) { return (CHugeInt(a) + b); } CHugeInt operator + (CHugeInt& b1, CHugeInt& b2) { CHugeInt t; int temp[MAX] = {0}; int length = b1.length > b2.length ? b1.length : b2.length; for(int i = 0; i < length; i++) { temp[i] = ((i < b1.length) ? b1.num[i] - '0' : 0) + ((i < b2.length) ? b2.num[i] - '0' : 0); } for(int i = 0; i < length; i++) { if(temp[i] >= 10) { int ten = temp[i] / 10; temp[i] %= 10; temp[i + 1] += ten; } } int i; for(i = MAX - 1; i >= 0; i--) { if(temp[i] != 0) { break; } } t.length = i + 1; for(i = 0; i < t.length; i++) { t.num[i] = temp[i] + '0'; } t.num[i] = 0; return t; } ostream& operator << (ostream& output, CHugeInt& b) { for(int i = b.length - 1; i >= 0; i--) { cout << b.num[i]; } return output; }
- PKU-MyInt和HugeInt作业-程设hw03
- PKU-静态成员作业-程设hw03
- PKU-多态作业-程设hw04
- PKU-MyString类作业-程设hw04-MyString1.cpp(重现)
- PKU-MyString类作业-程设hw04-MyString1.cpp(继承)
- MyInt
- HugeInt
- 程设作业:模板
- 程设作业:MyString类
- 程设作业:魔兽世界2:装备
- 程设作业(合成矩形)
- hugeint.c
- 程设作业(递归判断两个数互质)
- 程设作业:文件操作作业 解题报告&弱弱的代码
- PKU-文件操作作业-BMP图像文件旋转
- 程设作业 2016年12月23日15:52:33
- ZOJ和PKU 题目分类
- PKU MOOC作业魔兽世界之一:备战的结构化程序
- wind8坏处
- ajax Return JSON 出错
- backup - calendar
- c语言中堆栈认识汇总
- 动态Action跳转实现
- PKU-MyInt和HugeInt作业-程设hw03
- Apache的Order Allow Deny心得
- volatile关键字
- 家具更新
- linux c 库函数 qsort 和bsearch
- firewall参考网站2
- 中山大学信科院2011年复试题目
- malloc()函数调用失败
- HBase安装过程