高精度算法在各种编程题目以及实际应用中很常见,这里给出最常见的思路和一组函数实现。
结构体hp描述这个数字,成员len表示数字长度,s[]记录每一位上的数字,其实只记10个数,用int有点浪费,某些特定场合可以用char定义s[],只是相应的程序部分也必须做一些更改。
然后用最原始的办法一位一位计算得出结果。
当然这组函数只是示范思路,还不能进行复杂的数学运算,但这个基础上写出更复杂运算的函数相信并不困难^_^
| 高精度常用函数实现(C++) |
#define maxsize 100 struct hp { int len; int s[maxsize+1]; }; void input(hp &a,string str) { int i; while(str[0]=='0' && str.size()!=1) str.erase(0,1); a.len=(int)str.size(); for(i=1;i<=a.len;++i) a.s[i]=str[a.len-i]-48; for (i=a.len+1;i<=maxsize;++i) a.s[i]=0; } void print(const hp &y) { int i; for(i=y.len;i>=1;i--) cout<<y.s[i]; cout<<endl; } |

本文介绍了高精度算法在编程问题和实际应用中的重要性,并提供了一种使用结构体hp来表示数字的实现方式。通过成员len记录数字长度,s[]数组存储每一位数字。虽然使用int可能有些浪费,但可以通过调整为char来优化。文章通过简单的位运算演示了计算过程,虽然这些函数仅展示了基本思路,但为构建更复杂的数学运算函数奠定了基础。
最低0.47元/天 解锁文章
2157

被折叠的 条评论
为什么被折叠?



