POJ1001 高精度浮点数幂运算
高精度浮点数幂无异于高精度乘法,只是多了浮点运算。处理方法是先去掉小数点,最后输出时再加上去。
但是不能忘了对小数点的特殊处理,例如:
输入: 10.000 1
输出: 10
如果不注意有可能输出为10. //<-注意这个多余的小数点。
贴代码吧~详见注释~
1 #include <iostream> 2 #include <cstring> 3 4 using namespace std; 5 6 int main() { 7 string r; 8 int n; 9 while (cin>>r>>n) { 10 int i=1,p; 11 for (;i<6;i++) 12 if (r[i]=='.') 13 p=i;//找出小数点所在 14 r.erase(p,1);//先去掉小数点 15 string ans; 16 ans.resize(1024,0); 17 for (i=0;i<5;i++) 18 ans[i]=r[4-i]-48;//数字倒排 19 r=ans; 20 int l=5; 21 for (i=1;i<n;i++) { 22 string tmp; 23 tmp=ans; 24 ans=""; 25 ans.resize(1024,0); 26 for (int j=0;j<5;j++,l++) { 27 for (int k=0;k<l;k++) 28 ans[k+j]+=r[j]*tmp[k]; 29 for (int k=0;k<l;k++) 30 if (ans[k]>=10) { 31 if (k==l-1) 32 l++; 33 ans[k+1]+=ans[k]/10; 34 ans[k]%=10; 35 } 36 }//逐位相乘 注意进位 37 } 38 ans.insert(n*(5-p),1,'.');//插入小数点 39 int k=l; 40 while (0==ans[k]) --k; 41 int j=0; 42 while (0==ans[j]) ++j;//去掉首尾多余的零 43 if ('.'==ans[j]) ++j;//去掉多余的小数点 44 for (;k>=j;k--)ans[k]=='.'?cout<<'.':cout<<ans[k]-0;//最后正序输出 45 cout<<endl; 46 } 47 return 0; 48 }
转载于:https://www.cnblogs.com/lsdsjy/archive/2012/11/03/2752948.html
POJ1001 高精度浮点数幂运算相关推荐
- 一种快速的幂运算方法(底数是自然数e,指数是浮点数)
问题 [给一个浮点数 y y y,现在需要你求出 e y e^y ey 的值是多少]. 对于这个问题,最直接的方法是用库函数,例如在C++中<math.h>头文件提供了exp()函 ...
- 关于不能够精确的对浮点数进行运算的问题
http://edu.eoe.cn/ 在线课堂 昨天看到一篇帖子说了几个很明显的简单的浮点的运算,计算机都会算错. 我引过来给大家看看:' 运行代码: System.out.println(0.0 ...
- 浮点数相加php,利用php怎么实现一个浮点数精确运算功能
利用php怎么实现一个浮点数精确运算功能 发布时间:2020-12-15 16:06:03 来源:亿速云 阅读:94 作者:Leah 今天就跟大家聊聊有关利用php怎么实现一个浮点数精确运算功能,可能 ...
- c语言浮点数如何精确计算,浮点数精确运算的分析和解决办法
1.01 + 2.01 = 3.02 2.01 * 2.01 = 4 0401 不知你注意没有,这个很寻常的等式,你如果将它放在C++中,Java中,Basic中,它 居然是不成立的.计算机在开玩 ...
- python基础知识之整除、取余、幂运算
数字和表达式 python解释器可以当作计算器使用 >>>2+2 4 整数除法 一个整数被另一个整数除,计算结果的小数部分被截去,只保留整数部分. 如果参与除法的两个数中有一个为浮点 ...
- python 幂运算_python幂运算
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! "**"运算这个"**"比较简单,就是标 ...
- python中幂运算_python里幂运算
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! "**"运算这个"**"比较简单,就是标 ...
- python中幂运算_python的幂运算
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! "**"运算这个"**"比较简单,就是标 ...
- python中幂运算_python中幂运算
广告关闭 腾讯云11.11云上盛惠 ,精选热门产品助力上云,云服务器首年88元起,买的越多返的越多,最高返5000元! "**"运算这个"**"比较简单,就是标 ...
- 数学运算符 +(加)、-(减)、(乘)、(除)、%(取余;取模)、(整除)、(幂运算)及分支结构
数学运算符: +(加).-(减).*(乘)./(除).%(取余;取模).//(整除).**(幂运算) 1. +.-.*./ python的加减乘除和小学数学中的加减乘除的功能一样 print(3 + ...
最新文章
- Samba通过ad域进行认证并限制空间大小《转载》
- springMVC 注解 controller层的优化
- 2020年10月GitHub上最热门的开源项目
- [转] - 学习ASP.NET比较完整的流程!
- 动态引用webservice
- 使用 SAP CDS view SQL Function 将视图某些字段进行合并
- 全国计算机等级考试题库二级C操作题100套(第64套)
- 前端学习(1985)vue之电商管理系统电商系统之本地分支放到git上面保存
- Live WallPaper 让背景动起来
- Lateral View使用指南
- Emacs镜像ELPA
- IT 技能发展:10 大基本 IT 技能
- 银行卡四要素验证接口测试报告
- 计算机D盘无法读取,D盘目录或文件已损坏,无法读取解决方案
- mysql db_owner_SQL Server修改数据库对象所有者(Owner)浅析
- 【转载】不用加号和减号计算两个数的加法
- 记录一次C语言调用go生成的动态库的踩坑过程
- 编写dylib_iOS逆向-无需越狱注入动态库
- 美国商会呼吁对ICO进行澄清
- 模块化UPS与数据中心供配电架构的发展方向
热门文章
- 基于simHash的图像检索系统
- 基于差分分级和关联规则挖掘的气象数据关联性分析实战
- python基于给定时间戳生成 未来/过去 前进/倒退 n个时刻的时间戳操作大全(包括秒、分钟、小时、天、星期、月、年)
- rasa 中文 UnsupportedLanguageError: component ‘LanguageModelTokenizer‘ does not support language ‘zh‘.
- 2021-07-31mysql 登录退出
- python图像边缘检测_python 简单图像处理(11) 空间域图像锐化(边缘检测)
- solidity import @是什么意思
- 以太坊源代码 - eth_call以及eth_sendTransaction区别
- python2.7 UnicodeEncodeError: 'ascii' codec can't encode characters in position 0-5
- php session失效