十进制数据相加(大数据)
发布日期:2021-11-07 18:53:28
浏览次数:1
分类:技术文章
本文共 2651 字,大约阅读时间需要 8 分钟。
#ifdef UNICODEtypedef wstring _tstring;#elsetypedef string _tstring;#endif/***********************************************************************函数名称 :AddBigData函数功能 :两个大数据进行相加(必须为正整数 )函数参数 : 参数列表格式 [_IN_ _OUT_ _OPTION_] 参数名 说明信息@param _tstring s _IN_ 第一个相加的结果@param _tstring r _IN_ 第二个相加的结果返回值 : @return _tstring 两个整数相加的结果------------------------------------------------------------------------备注 : 输入的参数的要求:“必须是正整数”如果确保数据是正整数的话,请使用AddBigDataAux,这个函数运行的效率更高如果不能够保证输入参数是正整数的话,请使用AddBigData这个函数------------------------------------------------------------------------示例 :************************************************************************/_tstring AddBigDataAux(_tstring s, _tstring r) { int re = 0; _tstring digit; if (r.length() < s.length()) r.insert(r.begin(), s.length() - r.length(), '0'); else if (r.length() > s.length()) s.insert(s.begin(), r.length() - s.length(), '0'); for (int i = s.length() - 1; i >= 0; --i) { int a = (int(s[i] + r[i]) + re - 96); digit.insert(digit.begin(), char(a % 10 + 48)); re = a / 10; } if (re != 0) digit.insert(digit.begin(), char(re + 48)); return digit;}/***********************************************************************函数名称 :AddBigData函数功能 :两个大数据数值相加(可以为浮点型)函数参数 : 参数列表格式 [_IN_ _OUT_ _OPTION_] 参数名 说明信息 @param _tstring s _IN_ 输入的第一个字符串 @param _tstring r _IN_ 输入的第二个字符串返回值 : @return _tstring _OUT_ 输出的两个字符串相加的结果------------------------------------------------------------------------备注 : 输入的参数的要求:“必须是正数”,但是可以是浮点型的数据如果确保数据是正整数的话,请使用AddBigDataAux,这个函数运行的效率更高如果不能够保证输入参数是正整数的话,请使用AddBigData这个函数------------------------------------------------------------------------示例 :************************************************************************/_tstring AddBigData(_tstring s, _tstring r){ //先分别找到两个浮点型数的整数部分和浮点型部分 size_t pos1 = s.find(L'.'); size_t pos2 = r.find(L'.'); _tstring SInt, SFac, RInt, RFac; if (pos1==_tstring::npos)//如果没有找到的话 { SInt = s; SFac = L""; } else { SInt = s.substr(0, pos1); SFac = s.substr(pos1+1); } if (pos2==_tstring::npos) { RInt = r; RFac = L""; } else { RInt = r.substr(0, pos2); RFac = r.substr(pos2 + 1); } _tstring Int, Fac;//整数相加的结果、浮点数相加的结果 if (SFac.length()>RFac.length()) { RFac.insert(RFac.end(), SFac.length() - RFac.length(), '0'); } else { SFac.insert(SFac.end(), RFac.length() - SFac.length(), '0'); } Fac = AddBigDataAux(SFac, RFac); Int = AddBigDataAux(SInt, RInt); if (Fac.length()>SFac.length())//如果相加之后的长度>原有的长度的话,说明发生了进制 { Int = AddBigDataAux(Int, L"1");//整数部分+1 Fac.erase(Fac.begin());//小于部分减去前面1 Fac.insert(Fac.begin(), L'.');// } else//说明没有发生进制的情况 { Fac.insert(Fac.begin(), L'.'); } return Int+Fac;}
转载地址:https://blog.csdn.net/zhanggusheng/article/details/84581994 如侵犯您的版权,请留言回复原文章的地址,我们会给您删除此文章,给您带来不便请您谅解!
发表评论
最新留言
留言是一种美德,欢迎回访!
[***.207.175.100]2024年03月22日 20时29分26秒
关于作者
喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
java开发加入购物车功能_java web开发——购物车功能实现
2019-04-21
Java虚拟机不能满足_深入理解Java虚拟机--读书笔记1/3
2019-04-21
hanlp java api_java分词工具hanlp介绍
2019-04-21
nginx php 源码安装,Nginx1.12.2加php7.2.0的编译安装
2019-04-21
php 删除字节,php – 删除无效/不完整的多字节字符
2019-04-21
php 实现版本号对比,如何在PHP中实现比较版本号
2019-04-21
php sql 给数据库追加内容,php如何向数据库中的某串数据后追加内容【急】
2019-04-21
php微信小程序获取用户信息,微信小程序授权获取用户详细信息openid的实例详解...
2019-04-21
Java三元运算和if,Java三元运算符与<JDK8兼容性中的if / else
2019-04-21
php date 函数用法,php中date()日期时间函数使用方法
2019-04-21
php除法获取整数和余数,PHP除法取整和取余数
2019-04-21
java迷宫路径,Java中的迷宫路径查找器
2019-04-21
php substr cnblog,php中substr用法示例
2019-04-21
php链接怎么截取,PHP 截取网页中的固定种子链接
2019-04-21
iis运行不起来php报500,解决IIS上安装thinkphp6运行报500错误
2019-04-21
matlab 图中的legend,matlab中legend加图示命令的使用
2019-04-21