大数运算的代码

        翻出一段大二时写的代码,大数运算,包括四则,阶乘,乘方。大数的数据结构是链表,每个节点存4位数,所以理论上可计算任意大的整数。

        刚刚测试了一下,在GCC 4.2下可以正常编译运行,顿时内牛满面(VC 6.0下写的代码)。在此贴上源代码。


        排版有点乱,作为一个macvim小白,不知道怎么才能re-indent,愿知者以闻。

        现在看来,这段代码写得实在不咋的。从软件工程的角度看,用C++的语法写C代码,没把ADT封装成类,而写成了结构体和相关函数。从视觉美观的角度看,变量与运算符,行与行之间没有空格,空行,难看之极。从算法的角度看,乘法很朴素,没有用分治之类的优化,时间复杂度为O(n^2);阶乘更加不堪,从前往后算……

        再往底层考虑优化,可以应用对象池技术,减少从堆区申请内存空间的次数。

你可能感兴趣的:(代码)