#include <iostream>
#include<cstdio>
#include<algorithm>
#include<string.h>
#include<math.h>
using namespace std;
double mm;
int n,w,a[200],i,mi,b[200];
char s[10];
void cheng()
{
memset(b,0,sizeof(b));
for(int i=0;i<150;i++)
{
b[i]+=a[i]*mi;
int j=i;
while(b[j]>=10)
{
b[j+1]+=b[j]/10;
b[j]%=10;
j++;
}
}
for(int i=0;i<150;i++)
a[i]=b[i];
}
int main()
{
int flag;
while(~scanf("%s%d",s,&n))
{
w=0;flag=0;
memset(a,0,sizeof(a));
for(i=strlen(s)-1;i>=0;i--)
if(s[i]=='.')
{
flag=1;
break;
}
else w++;
sscanf(s,"%lf",&mm);
if(flag&&w>0)
{
for(int k=0;k<w;k++)
mm*=10;
mi=(int)(mm+0.00001);
while(mi%10==0&&w>0)
{
mi/=10;
w--;
}
}
else mi=(int)mm;
a[0]=1;
for(i=0;i<n;i++)
{
cheng();
}
i=150;
while(a[i]==0)
i--;
if(mi==0)
printf("0");
else if(flag==0||w==0)
{
for(int j=i;j>=0;j--)
printf("%d",a[j]);
}
else
{
if(w*n<i+1)
{
int j;
for( j=i;j>=w*n;j--)
printf("%d",a[j]);
printf(".");
for(int k=j;k>=0;k--)
printf("%d",a[k]);
}
else
{
printf(".");
for(int j=w*n-1;j>i;j--)
printf("0");
for(int j=i;j>=0;j--)
printf("%d",a[j]);
}
}
printf("\n");
}
return 0;
}
这条题目有很多点要考虑,写得有些仓促,勉强A了poj1001
最新推荐文章于 2021-02-24 22:46:37 发布