大整数运算 ——第一次个人项目报告

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了大整数运算 ——第一次个人项目报告相关的知识,希望对你有一定的参考价值。

1.          首先在输入上,除了考虑第一位正负号和起始0的情况外,还考虑了每行仅仅只有一个换行符的情况。防止在多组输入情况下,误输入4行数据。

2.          在加法运算中,主要分类讨论了两个运算符的加减情况,直接先判断结果的正负情况,再判断是加法还是减法,减法运算仅仅是改变了第二个运算符的正负情况,特别判断了一下运算符是0和结果是0的输出情况,运算才用手工模拟。

3.          乘法采用了FFT的算法,将在时域上复杂度为O(n^2)的卷积运算,变成了频域上简单的相乘,将时间复杂度降低为了O(nlogn),提高了运算的效率。

4.          除法运算采用手工模拟算法,本想到使用牛顿迭代法进行优化,可以时间限制,未能完成,最后10万位除以5万位,时间大概在5秒左右。

5.          除此之外对加减法和乘除法采用不同进制进行运算,加快各个运算之间的效率。

6.          优点在于适应各种输入,都采取了防范措施,防止程序崩溃

代码链接:https://github.com/zj140/calc/blob/master/calc.cpp

以上是关于大整数运算 ——第一次个人项目报告的主要内容,如果未能解决你的问题,请参考以下文章

个人实践项目——四则运算

个人项目1:随机生成30道整数四则运算题

软件工程第一周作业----个人项目总结

作业二:个人编程项目——四则运算

四则运算 个人项目整理

作业二:个人编程项目——四则运算