#include<iostream>
#include<string>
using namespace std; struct BigReal //高精度实数
{
int
len; //长度
int num[];
int
point; //小数点位置
BigReal()
{

len=;
point=;
memset(num,,sizeof(num));
}
};
bool Read(BigReal& a) //读入一个大实数
{
string s;
int
t,i; if(cin>>s)
{

a.len=s.size();
a.point=;
t=;
for
(i=s.size()-;i>=;i--)
{

if
(s[i]=='.')
{

a.len--;
a.point=t;
continue
;
}

a.num[t++]=s[i]-'0';
}

return
true;
}

else
return
false;
}
void Show(BigReal& a)
{

int
i,pos; for(i=;i<a.point && a.num[i]==;i++) ;
pos=i;
if
(a.point==a.len)
{

if
(pos==a.point)
{

cout<<<<endl; //0.0000000的情况
return ;
}

else

cout<<'.'; //0.121313114的情况
}
for
(i=a.len-;i>=;i--)
{

cout<<a.num[i];
if
(i==pos) break; //小数时后导零不输出
if(i==a.point) cout<<'.';
}

cout<<endl;
}
BigReal Mul(const BigReal& a,const BigReal& b)
{

int
i,j,len=;
BigReal c; for(i=;i<a.len;i++)
for
(j=;j<b.len;j++)
{

c.num[i+j]+=a.num[i]*b.num[j];
if
(c.num[i+j]>=)
{

c.num[i+j+]+=c.num[i+j]/;
c.num[i+j]%=;
}
}

c.point=a.point+b.point;
len=a.len+b.len;
while
(c.num[len-]== && len>&&len>c.point) len--; //处理长度,去掉前导零
if(c.num[len]) len++;
c.len=len;
return
c;
}
int main()
{

BigReal a;
int
b; while(Read(a)&& scanf("%d",&b)==)
{

BigReal ans;
ans.num[]=;
while
(b--)
ans=Mul(ans,a);
Show(ans);
}

return
;
}

hdu1063的更多相关文章

  1. HDU1063 大数 java

    Exponentiation Time Limit: 2000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others)Tot ...

  2. Java大数相乘-hdu1063

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063 题目描述: 代码实现: import java.util.Scanner; import jav ...

  3. ( 大数 startsWith substring) Exponentiation hdu1063

    Exponentiation Time Limit: 2000/500 MS (Java/Others)    Memory Limit: 65536/32768 K (Java/Others) To ...

  4. hdu-1063(大数)

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1063 思路:1.大数乘法模板 2.考虑小数点的位置 3.乘法前后判断前后道0 参考文章:https:/ ...

  5. ACM训练计划建议(写给本校acmer,欢迎围观和指正)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  6. java中大数的一些基本运算

    import java.math.BigInteger; import java.util.Scanner; public class Main { public static void main(S ...

  7. ACM训练计划建议(转)

    ACM训练计划建议 From:freecode#  Date:2015/5/20 前言: 老师要我们整理一份训练计划给下一届的学弟学妹们,整理出来了,费了不少笔墨,就也将它放到博客园上供大家参考. 菜 ...

  8. UVA+POJ中大数实现的题目,持续更新(JAVA实现)

    UVA10494:If We Were a Child Again 大数除法加取余 import java.util.Arrays; import java.util.Scanner; import ...

  9. 大数问题,通常用JAVA

    e.g. HDU1002 简单加法 import java.math.BigInteger; import java.util.Scanner; public class Main { public ...

随机推荐

  1. 剑指offer之 调整奇数偶数数组位置

    package Problem14; /* * 问题描述: * 输入一个整数数组,实现一个函数来调整该数组中数字的顺序,使得所有奇数位与数组的前半部分,所有偶数位与数组的 * 后半部分 */ publ ...

  2. EntityFramework 学习 一 枚举

    1. Convert an existing property to Enum: using (var ctx = new SchoolDBEntities()) { Teacher tchr = n ...

  3. 访问虚拟机中的架设的Web服务器

    环境: 1.虚拟机中安装了CentOS,虚拟机使用NAT的方式 2.在CentOS中安装了APACHE 并且使用 http://127.0.0.1可以正常访问,通过ifconfig查到IP地址是 19 ...

  4. R Customizing graphics

    Customizing graphics GraphicsLaTeXLattice (Treillis) plots In this chapter (it tends to be overly co ...

  5. POJ 2253 Frogger(warshall算法)

    题意:湖中有很多石头,两只青蛙分别位于两块石头上.其中一只青蛙要经过一系列的跳跃,先跳到其他石头上,最后跳到另一只青蛙那里.目的是求出所有路径中最大变长的最小值(就是在到达目的地的路径中,找出青蛙需要 ...

  6. IBM V3500存储恢复步骤实例(linux)

    本环境是一有台IBM3500存储,将存储挂载至linux的/data目录,模拟测试当主服务器挂了,将数据恢复到另一台服务器,存储有两个地址,我配置的是192.168.80.59是用于web管理,192 ...

  7. QListWidget拖放

    setDragEnabled() 允许拖 setAcceptDrops()允许放 setDragDropMode(QAbstractItemView.DragDrop)设置拖拽模式 setSelect ...

  8. 【leetcode刷题笔记】Reverse Linked List II

    Reverse a linked list from position m to n. Do it in-place and in one-pass. For example:Given 1-> ...

  9. WC2010 BZOJ1758 重建计划_长链剖分

    题目大意: 求长度$\in [L,U]$的路径的最大边权和平均值. 题解 首先二分就不用说了,分数规划大家都懂. 这题有非常显然的点分治做法,但还是借着这个题学一波长链剖分. 其长链剖分本身也没啥,就 ...

  10. Windows常用的命令

    wmic msinfo32 regedit msconfig