#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. vim 操作符命令和位移(如删除和修改)

    一.字符删除命令:x,d,D x 删除光标下的字符,前面可以加入命令计数,如:5x 代表删除从当前光标到后面的5个字符,包括空格: X 删除光标前面的一个字符: dw 删除光标下到word后的数据: ...

  2. UOJ78 二分图最大匹配

    从前一个和谐的班级,有 nlnl 个是男生,有 nrnr 个是女生.编号分别为 1,…,nl1,…,nl 和 1,…,nr1,…,nr. 有若干个这样的条件:第 vv 个男生和第 uu 个女生愿意结为 ...

  3. Android Studio Mac版快捷键

    mac上按键符号 ⌥ : option / alt ⇧ : shift ⌃ : control ⌘ : command ⎋ : esc (一)查找/查看相关 搜索任意内容 双击 sft 当前文件查找/ ...

  4. 使用myeclipes制造属于自己的jar

    选定你需要在jar中包含的package或者class 步骤1:右键export导出, 步骤2:导出类型为java --JRE  file. 步骤3:直接finish即可完成 如果希望你的jar带源码 ...

  5. Linux-awk command

    简介 awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大.简单来说awk就是把文件逐行的读入,以空格为默认分隔符将每行切片,切开的部分再 ...

  6. [原]NYOJ-公约数和公倍数 -40

    大学生程序代写 //http://acm.nyist.net/JudgeOnline/problem.php?pid=40 公约数和公倍数 时间限制:1000 ms  |  内存限制:65535 KB ...

  7. Gym - 101196G :That's One Hanoi-ed Teacher (递推)

    题意:给定当前汉诺塔的状态,问还有多少步走完,不合法输出“No”. 思路:显然可以一层一层试探下去的.我们设三个柱子为“起始”,“中转”,“终点”,当前状态的最大的盘子不可能在中转站处:如果在起始站, ...

  8. Java面试题10(如何取到set集合的第一个元素)

    1.如何取到set集合的第一个元素. public static void main(String[] args) { Set set = new HashSet(); set.add("x ...

  9. log4net调试

    public delegate void LogReceivedEventHandler(object source, LogReceivedEventArgs e); public sealed c ...

  10. wcf win7上使用net.tcp出现不支持协议问题解决

    第一:iis绑定 net.tcp 808:* 第二:iis 应用中高级开启协议,添加net.tcp多协议逗号隔开 第三:开启各项服务 第四:执行 ServiceModReg.exe -r