| ||||||||||
| 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 | |||||||||
c语言的源代码#include<stdio.h>
#include<string.h>
void rmpoint(char a[],int* c)
{
int i,j,p,c1;
c1=0;
char b[205];
p=strlen(a);
for(i=0,j=0;i<p;i++)
{
if(a[i]=='.')
{
c1=p-1-i;
continue;
}
a[j]=a[i];
j++;
}
*c=c1;
a[j]=0;
}
void chen(char a[],char b[])
{
int c[410]={0};
int i,j,sum,k,k1;
k=409;
k1=409;
for(i=strlen(a)-1;i>=0;i--)
{
for(j=strlen(b)-1;j>=0;j--,k--)
{
sum=(a[i]-'0')*(b[j]-'0')+c[k];
c[k-1]=c[k-1]+sum/10;
c[k]=sum%10;
}
k=--k1;
}
for(i=0;i<410;i++)
if(c[i]!=0)
break;
for(j=i,i=0;j<410;j++,i++)
b[i]=c[j]+'0';
b[i]=0;
}
void addpoint(char a[],char b[],int p)
{
int i,j,p1,p2,j1,min;
p2=0;
p1=strlen(a);
if(p1>=p)
{
p=p1-p;
for(i=p1-1;i>=0;i--)
{
if(a[i]!='0')
break;
p2++;
}
if(p1-p2<p)
min=p;
else
min=p1-p2;
for(i=0,j=0;i<min;i++,j++)
{
if(p==i)
{
b[j]='.';
i--;
p--;
continue;
}
b[j]=a[i];
}
b[j]=0;
}
else
{
b[0]='.';
p=p-p1;
for(i=p1-1,j1=0;p1>=0;i--)
{
if(a[i]!='0')
break;
j1++;
}
for(i=1,j=0;j<p;j++,i++)
b[i]='0';
for(j=0;j<p1-j1;i++,j++)
b[i]=a[j];
b[i]=0;
}
}
int main()
{
char n1[7],n2[410],n3[410];
int a,p,i;
while(scanf("%s %d",n1,&a)==2)
{
rmpoint(n1,&p);
strcpy(n2,n1);
for(i=0;i<a-1;i++)
{
chen(n1,n2);
}
p=p*a;
if(p!=0)
addpoint(n2,n3,p);
printf("%s\n",n3);
}
/*p=strlen(n3);
for(a=0;a<p;a++)
printf("%c",n3[a]);
}*/
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator