#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int a[201];
string s;int n;
#define rep(i,j,k) for(int i=j;i<=k;i++)
#define repm(i,j,k) for(int i=j;i>=k;i--)
#define mem(a) memset(a,0,sizeof(a))
int main()
{
while(cin>>s>>n)
{
int dot_pos=-1;
mem(a);
rep(i,0,5)
if(s[i]=='.')
dot_pos=i;
if(dot_pos==-1)
{
int ans=0;
rep(i,0,5)
{
ans*=10;
ans+=s[i]-48;
}
a[200]=ans;
repm(i,200,0)
{
if(a[i]>=10)
{
a[i-1]+=a[i]/10;
a[i]%=10;
}
}
rep(i,2,n)
{
rep(j,0,200)
{
a[j]*=ans;
}
repm(j,200,0)
{
if(a[j]>=10)
{
a[j-1]+=a[j]/10;
a[j]%=10;
}
}
}
int st=0;
while(a[st]==0)
st++;
rep(i,st,200)
cout<<(char)(a[i]+48);
cout<<endl;
continue;
}
int final_pos=5;
while(s[final_pos]=='0')
final_pos--;
int ans=0;
rep(i,0,final_pos)
{
if(i!=dot_pos)
{
ans*=10;
ans+=s[i]-48;
}
}
a[200]=ans;
repm(i,200,0)
{
if(a[i]>=10)
{
a[i-1]+=a[i]/10;
a[i]%=10;
}
}
rep(i,2,n)
{
rep(j,0,200)
{
a[j]*=ans;
}
repm(j,200,0)
{
if(a[j]>=10)
{
a[j-1]+=a[j]/10;
a[j]%=10;
}
}
}
int st=0;
while(a[st]==0)
st++;
st--;
int len=final_pos-dot_pos;
len*=n;
if(200-st<=len)
{
cout<<".";
rep(i,200-len+1,200)
cout<<(char)(a[i]+48);
cout<<endl;
}
else
{
rep(i,st+1,200-len)
cout<<(char)(a[i]+48);
if(len!=0)
cout<<".";
rep(i,200-len+1,200)
cout<<(char)(a[i]+48);
cout<<endl;
}
}
}
版权声明:本文为Peson_Du原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。