POJ 1001 Exponentiation 模拟小数幂
模拟小数幂
小数点位 pos
非零末位 e
长度 len
只有三种情况
pos > len
pos < e
e < pos < len
#include <iostream>
#include <cstring>
using namespace std;
int a[], b[], c[];
void Cal()
{
memset(c, , sizeof(c));
for(int i = ; i < ; i++)
for(int j = ; j < ; j++)
c[i+j] += a[i] * b[j];
for (int i = ; i < ; i++){
c[i+] += c[i]/;
c[i] %= ;
}
memset(a, , sizeof(a));
for (int i = ; i <= ; i++)
a[i] = c[i];
}
char s[];
int pos, n, len;
int main()
{
while(cin>>s>>n)
{
memset(a,,sizeof(a));
memset(b,,sizeof(b));
memset(c,,sizeof(c));
int t = ;
for (int i = ; i >= ; i--)
{
if(s[i]=='.') pos = i;
else b[t++] = s[i] - '';
}
a[] = ;
for(int i = ; i <= n; i++) Cal();
len = ;
while(!c[len] && len>=) len--;
int e = ;//末尾
while(!c[e] && e<= len) e++;
pos = - pos; pos *= n;//小数点
if(pos > len)
{
cout<<".";
for (int i = pos-; i >= e; i--) cout<<c[i];
cout<<endl;
}
else if(pos <= e)//整数
{
for (int i = len; i >= pos; i--) cout<<c[i];
cout<<endl;
}
else//普通
{
for (int i = len; i >= pos; i--) cout<<c[i];
cout<<".";
for (int i = pos-; i >= e; i--) cout<<c[i];
cout<<endl;
}
}
}
POJ 1001 Exponentiation 模拟小数幂的更多相关文章
- POJ 1001 Exponentiation(大数运算)
POJ 1001 Exponentiation 时限:500 ms 内存限制:10000 K 提交材料共计: 179923 接受: 43369 描述:求得数R( 0.0 < R < ...
- [POJ 1001] Exponentiation C++解题报告 JAVA解题报告
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 126980 Accepted: 30 ...
- POJ 1001 Exponentiation
题意:求c的n次幂……要求保留所有小数…… 解法:一开始只知道有BigInteger……java大数+模拟.第一次写java大数……各种报错各种exception……ORZ 没有前导0和小数后面的补位 ...
- [POJ] #1001# Exponentiation : 大数乘法
一. 题目 Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 156373 Accepted: ...
- POJ 1001 Exponentiation 无限大数的指数乘法 题解
POJ做的非常好,本题就是要求一个无限位大的指数乘法结果. 要求基础:无限大数位相乘 额外要求:处理特殊情况的能力 -- 关键是考这个能力了. 所以本题的用例特别重要,再聪明的人也会疏忽某些用例的. ...
- poj 1001 Exponentiation 第一题 高精度 乘方 难度:1(非java)
Exponentiation Time Limit: 500MS Memory Limit: 10000K Total Submissions: 138526 Accepted: 33859 ...
- POJ 1001 Exponentiation(JAVA,BigDecimal->String)
题目 计算实数a的n次方,具体输出格式看案例 import java.util.*; import java.math.*; public class Main { public static voi ...
- 【POJ 1001】Exponentiation (高精度乘法+快速幂)
BUPT2017 wintertraining(15) #6A 题意 求\(R^n\) ( 0.0 < R < 99.999 )(0 < n <= 25) 题解 将R用字符串读 ...
- Poj 1001 / OpenJudge 2951 Exponentiation
1.链接地址: http://poj.org/problem?id=1001 http://bailian.openjudge.cn/practice/2951 2.题目: Exponentiatio ...
随机推荐
- Servlet 技术全总结 (已完成,不定期增加内容)
Servlet是独立于平台和协议的服务器端的java应用程序,处理请求的信息并将其发送到客户端. Servlet的客户端可以提出请求并动态获得响应. Servlet动态生成web页面,担当浏览器或其他 ...
- 用Gmap开发winform地图应用程序(一)Gmap介绍与添加
GMap.NET是一个强大的免费开源.NET组件.该组件允许用户加载Google.雅虎.必应.街景等地图.用户可以在这些地图上进行点的标记.路线规划.区域操作.GMap.NET应用于Windows F ...
- PHP内置Web Server探究(二)自定义PHP控制台输出console函数
我们在开发APP的服务器端,当和APP进行联调时通常需要实时跟踪URL请求和参数的接收情况. 但PHP并没有像Python或Java专有的控制台输出函数,Python的print()和Java的Sys ...
- Lintcode--008(编辑距离)
http://www.lintcode.com/en/problem/edit-distance/ 2016-08-29 给出两个单词word1和word2,计算出将word1 转换为word2的最少 ...
- 开始3D编程前需注意的十件事
http://www.csdn.net/article/2013-06-21/2815949-3d-programming 原文作者Vasily Tserekh是名3D编程爱好者,他发表了一篇博文&l ...
- 自制单片机之十二……AT89C2051烧写器的制做与调试
现在都用S52了,还用C2051干嘛!价格也差不多.但是C2051的体积要比S51.S52小很多,而且引脚只有20只,在一些简单的控制中,这些引脚已足够了,小的体积更具有优势些.但目前好像还没有支持在 ...
- vs2008包加载失败
由于安装vs2008sp1后,新建项目报错,解决未遂,于是重装vs2008,装完后又出现包加载失败问题: Microsoft.Data.Entity.Design.Package.MicrosoftD ...
- 特征提取(Detect)、特征描述(Descriptor)、特征匹配(Match)的通俗解释
特征匹配(Feature Match)是计算机视觉中很多应用的基础,比如说图像配准,摄像机跟踪,三维重建,物体识别,人脸识别,所以花一些时间去深入理解这个概念是不为过的.本文希望通过一种通俗易懂的方式 ...
- 浅谈c语言程序为什么需要内存 栈又是什么?
.关于内存(程序的执行需要内存的支持) ()内存本身在物理上是硬件器件,由操作系统提供 ()内存的管理最终由操作系统统一管理.为了能过便捷的管理内存(酒店管理房间 是不是分很多不同的类型和待遇呢),同 ...
- 又一编辑神器-百度编辑器-Ueditor
(Lionden<hsdlionden@gmail.com> 转载说明) 前段时间发表过一篇关于“KindEditor在JSP中使用”的博文.这几天在沈阳东软进行JavaWeb方面的实习工 ...