| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
我确实不知道哪儿错了~~麻烦哪位大侠给指点指点~到底还要考虑什么细节啊?#include "iostream"
using namespace std;
void Mul(char *s1, char *s2, char *Ans)
{
int a[100]={0},b[100]={0},c[256]={0};
int Len1=strlen(s1),Len2=strlen(s2),Len=Len1+Len2,k=0,x,y,z,i,j,w;
for(i=Len1-1;i>=0;i--)
a[++k]=s1[i]-'0';
k=0;
for(i=Len2-1;i>=0;i--)
b[++k]=s2[i]-'0';
for(i=1;i<=Len1;i++)
for(j=1;j<=Len2;j++)
{
x=a[i]*b[j];
y=x/10;
z=x%10;
w=i+j-1;
c[w]=c[w]+z;
c[w+1]=c[w+1]+c[w]/10+y;
c[w]=c[w]%10;
}
while(c[Len]==0 && Len>1) Len--;
k=0;
for(i=Len;i>=1;i--)
Ans[k++]=c[i]+'0';
Ans[k]='\0';
}
int main()
{
char r[6];
int n;
while(scanf("%s %d",r,&n)!=EOF)
{
int i,index,j;
for(i=0;i<6;i++)
{
if(r[i]=='.')
{
index=i;
for(j=i;j<5;j++)
r[j]=r[j+1];
r[j]='\0';
break;
}
}
char c[256];
if(n==0)
cout<<1<<endl;
else
{
Mul(r,r,c);
for(i=2;i<n;i++)
Mul(r,c,c);
int w=(5-index)*n;
if(w==0)cout<<c<<endl;
if(w>=strlen(c))
{
for(j=strlen(c)-1;j>=0;j--)
if(c[j]!='0')break;
if(j==-1)cout<<0<<endl;
else
{
cout<<".";
for(i=0;i<w-strlen(c);i++)
cout<<0;
for(i=0;i<=j;i++)
cout<<c[i];
cout<<endl;
}
}
else
{
for(j=strlen(c)-1;j>=0;j--)
if(c[j]!='0')break;
for(i=0;i<strlen(c)-w;i++)
cout<<c[i];
if(i!=j+1)
{
cout<<".";
for(;i<=j;i++)
cout<<c[i];
}
cout<<endl;
}
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator