R^n 0<=R<=99.9
注意当没有小数的情况
#include"stdio.h"
#include"string.h"
#define N 1001
int A[N];
void mul(int a[],int n)
{
int i;
int carry=0;
for(i=1;i<=a[0];i++)
{
a[i]=a[i]*n+carry;
carry=a[i]/10;
a[i]%=10;
}
while(carry)
{
a[i++]=carry%10;
carry/=10;
}
a[0]=i-1;
}
void print(int m)
{
int i,j;
if(A[0]>m)//ÓÐÕûÊý
{
for(j=0,i=A[0];j<A[0]-m;i--,j++)
printf("%d",A[i]);
for(j=1;A[j]==0;j++)A[j]=-1;
if(A[i]==-1||i==0)return ;
printf(".");
for(;A[i]!=-1&&i>=1;i--)
printf("%d",A[i]);
}
else
{
printf(".");
for(i=0;i<m-A[0];i++)
printf("0");
for(j=1;A[j]==0;j++)A[j]=-1;
for(i=A[0];i>=1&&A[i]!=-1;i--)
printf("%d",A[i]);
}
}
int main()
{
int n;
int m;
int i,t;
char s[10];
while(scanf("%s%d",s,&n)!=-1)
{
t=0;
memset(A,0,sizeof(A));
m=5;
for(i=0;s[i];i++)
{
if(s[i]=='.')m=i;
else t=t*10+s[i]-'0';
}
A[0]=A[1]=1;
m=(5-m)*n;
while(n--)mul(A,t);
print(m);
printf("\n");
}
return 0;
}