Problem C: 大整数类bigint的基本实现

Problem C: 大整数类bigint的基本实现

Time Limit: 1 Sec  Memory Limit: 128 MB
Submit: 153  Solved: 84
[Submit][Status][Web Board][Creator:]

Description

编写大整数类bigint,以字符串的形式来保存任意长度的整数,并可支持基本运算。

成员数据包括:char *str用来指向动态分配的内存空间,int sign用来表示数据的符号(1为正,-1为负),int len用来保存大整数的实际长度(不包括符号和\0)。

基本成员函数包括:以常量字符指针为参数的构造函数(默认为空串)、以整数为参数的构造函数(可用来将普通整数转化为对象)、析构函数、支持深复制的复制构造函数、重载赋值运算符、打印运算符。

定义输入函数input:用来支持对任意长度整数输入的支持。推荐思路:首先开辟长度为81的空间存放数据,接着读取字母并增加有效长度,如果达到了80个符号则开辟更大的空间(如161),将原有内容拷贝到新空间,释放原有空间。重复上述步骤,直到遇到终止符号(可默认为回车符)为止。注意考虑负号的输入。

Input

分两行输入两个纯数字的整数字符串(第一个负号除外),以回车符为终止标记。

以两个串的内容创建两个bigint的对象b1和b2。

以b1为参数复制构造得到b3,定义默认对象b4。

Output

第一行:输出b3的内容

第二行:将b2赋值给b4,输出b4

第三行:输出b1和b2比较的结果,如b1>b2输出1,如相等输出0,如b1<b2输出-1。

Sample Input

1234555645645654654645645
-3231234328473924724723847239472

Sample Output

1234555645645654654645645
-3231234328473924724723847239472
1
[Submit][Status]