长整数算数运算
设计一个程序实现两个任意长的整数算数运算,比如加、减、乘等四则运算。
基本要求:
(1) 利用双项循环链表实现长整数的存储,每个结点含一个整型变量。任何整型
变量的范围是-(215-1)~(215-1)。输入和输出形式:按中国对于长整数的表
示习惯,每四位一组,组间用逗号隔开。
(2) 实现长整数的加法运算;
(3) 实现长整数的减法运算;
(4) 实现长整数的乘法运算;
(5) 实现长整数的除法运算,输出整数商和余数;
(6) 实现长整数的乘方运算等。
实现提示:
① 每个结点中可以存放的最大整数为215-1=32767,才能保证两数相加不会溢
出。但若这样存,即相当于按32768 进制数存,在十进制数与32768 进制数之间
的转换十分不方便。故可以在每个结点中仅存十进制数的4 位,即不超过9999
的非负整数,整个链表视为万进制数。
② 可以利用头结点数据域的符号代表长整数的符号。用其绝对值表示元素结点
数目。相加过程中不要破坏两个操作数链表。两操作数的头指针存于指针数组中
是简化程序结构的一种方法。不能给长整数位数规定上限。
有人知道该怎么做吗?对于加减乘发我都有思路,就是不知道除法该怎么做。现在我唯一能想到的就是用减法,但是这样效率太低了。有人能给我一点儿意见吗?