Description

Problems involving the computation of exact values of very large magnitude and precision are common. For example, the computation of the national debt is a taxing experience for many computer systems.        
This problem requires that you write a program to compute the exact value of R n where R is a real number ( 0.0 < R < 99.999 ) and n is an integer such that 0 < n <= 25.       

Input

The input will consist of a set of pairs of values for R and n. The R value will occupy columns 1 through 6, and the n value will be in columns 8 and 9.      

Output

The output will consist of one line for each line of input giving the exact value of R^n. Leading zeros should be suppressed in the output. Insignificant trailing zeros must not be printed. Don't print the decimal point if the result is an integer.      

Sample Input

95.123 12
0.4321 20
5.1234 15
6.7592 9
98.999 10
1.0100 12

Sample Output

548815620517731830194541.899025343415715973535967221869852721
.00000005148554641076956121994511276767154838481760200726351203835429763013462401
43992025569.928573701266488041146654993318703707511666295476720493953024
29448126.764121021618164430206909037173276672
90429072743629540498.107596019456651774561044010001
1.126825030131969720661201
#include<iostream>
#include<stdio.h>
using namespace std;
int main()
{
char a[];
int n;
while(cin>>a>>n){
int b=,c[]={},i,j,x,flag=;
c[]=;
for(i=;a[i]!='\0';i++)
{
if(a[i]=='.')
{
x=i; //x为小数点所在的位置
flag=;
continue;
}
b=b*+a[i]-''; //b为a[10]去掉小数点后的整型数字
}
x=i-x-; //x为小数部分的位数
for(i=;i<n+;i++)
{
for(j=;j<;j++)
c[j]*=b;
for(j=;j>=;j--)
if(c[j]>=)
{
c[j-]+=c[j]/;
c[j]%=;
}
}
if(flag==)
{
for(i=;c[i]==;i++); //i为c[250]中才首位开始判断 不是0的那一位
for(;i<;i++)
cout<<c[i]; //无小数部分时直接输出c[250],无需考虑小数点
}
else if(a[]=='') //只有小数部分时
{
flag=;
//整数部分为0,不输出
for(j=i;j<;j++)
if(c[j]!=)
{
flag=;
break; //利用flag的值来判断结果是否存在小数部分
}
if(flag==)
{
cout<<".";
for(j=;c[j]==&&j>=i;j--); //去掉小树部分最后多余的0
for(i=-n*x;i<=j;i++)
cout<<c[i];
}
}
else //既有小数部分也有整数部分
{
flag=;
for(i=;c[i]==;i++);
for(;i<-n*x;i++) //小数部分一共是n*x位,之前全为整数部分
cout<<c[i];
for(j=i;j<;j++)
if(c[j]!=)
{
flag=;
break; //此处 同上述只有小数部分的情况
}
if(flag==)
{
cout<<".";
for(j=;c[j]==&&j>=i;j--);
for(;i<=j;i++)
cout<<c[i];
} }
cout<<endl;
}
system("pause");
return ;
}

A - 高精度(大数)N次方(第二季水)的更多相关文章

  1. F - The Fun Number System(第二季水)

    Description In a k bit 2's complement number, where the bits are indexed from 0 to k-1, the weight o ...

  2. D - Counterfeit Dollar(第二季水)

    Description Sally Jones has a dozen Voyageur silver dollars. However, only eleven of the coins are t ...

  3. S - 骨牌铺方格(第二季水)

    Description          在2×n的一个长方形方格中,用一个1× 2的骨牌铺满方格,输入n ,输出铺放方案的总数.         例如n=3时,为2× 3方格,骨牌的铺放方案有三种, ...

  4. R - 一只小蜜蜂...(第二季水)

    Description          有一只经过训练的蜜蜂只能爬向右侧相邻的蜂房,不能反向爬行.请编程计算蜜蜂从蜂房a爬到蜂房b的可能路线数.         其中,蜂房的结构如下所示.     ...

  5. I - Long Distance Racing(第二季水)

    Description Bessie is training for her next race by running on a path that includes hills so that sh ...

  6. Y - Design T-Shirt(第二季水)

    Description Soon after he decided to design a T-shirt for our Algorithm Board on Free-City BBS, XKA ...

  7. N - Robot Motion(第二季水)

    Description A robot has been programmed to follow the instructions in its path. Instructions for the ...

  8. B - Maya Calendar(第二季水)

    Description During his last sabbatical, professor M. A. Ya made a surprising discovery about the old ...

  9. T - 阿牛的EOF牛肉串(第二季水)

    Description          今年的ACM暑期集训队一共有18人,分为6支队伍.其中有一个叫做EOF的队伍,由04级的阿牛.XC以及05级的COY组成.在共同的集训生活中,大家建立了深厚的 ...

随机推荐

  1. 软件设计之UML—UML中的六大关系

    http://www.cnblogs.com/hoojo/p/uml_design.html

  2. iOS 开发~UIWindow

    比如下面例子: 写出第一个iOS的程序,在界面上显示“Hello World” 1.如何新建一个工程 iOS—>Single View Application—>工程名.保存位置 2.运行 ...

  3. iOS_block内存分析

    ----------------------MRC情况下Block内存分析---------------------------- 1.如果在block中使用全局变量,他为了持有这个变量,会将对应的对 ...

  4. iOS 面试题 1

    1.    简述OC中内存管理机制.与retain配对使用的方法是dealloc还是release,为什么?需要与alloc配对使用的方法是dealloc还是release,为什么?readwrite ...

  5. vim 折叠技巧

    转自:http://www.2cto.com/os/201203/122133.html 主要命令: zf-创建折叠 zf20G--创建折叠,从当前行折叠到第20行 zfgg--创建折叠,从当前位置折 ...

  6. 退出ssh,程序继续运行的解决办法

    对Unix.Linux类服务器维护经常是通过ssh完成的,而有些操作执行时间较长,如:更新程序.文件备份.软件编译安装等.此时如果断开ssh连接的话,更新程序就会随之被中断.如何保证断开ssh后仍旧能 ...

  7. Java中关于final关键字

    final关键字,大学时一直没有理解,伴随到工作,郁闷......也可能大学真的没认真去学习 首先,final给人一看英语单词 不就是最终的嘛,最终的什么的呢 ? 小张现在就带大家 学习下..... ...

  8. DOM2定位与高宽类属性专题学习【DOM专题学习系列(一)】

    网页可见区域宽: document.body.clientWidth;网页可见区域高: document.body.clientHeight;网页可见区域宽: document.body.offset ...

  9. 那些我希望在一开始使用 Zsh(oh-my-zsh) 时就知道的

    原文地址:http://segmentfault.com/a/1190000002658335  作者:xavier 自带的插件 其实我用了 oh-my-zsh 快三个月后才知道原来他自带了很多插件没 ...

  10. 数塔(dp)

    数塔 Time Limit: 1000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)Total Submissi ...