| ||||||||||
| 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 | |||||||||
新手:刚来poj,做1001一个下午了,想了很多情况都能出结果,还是AC不了,有AC的同学或者有相同问题的朋友能帮忙吗我是用C语言写的,是一点一点写的,有点乱。但是还是出来了结果?help!!
#include<stdio.h>
#include<string.h>
int mi(int k)
{
int i,c;
c=1;
for(i=1;i<=k;i++)
c=c*10;
return c;
}
int main()
{
int m1,m,n,i,j,b,l,a[1001],lenth,ling,k;
short int zheng;
char m2[10],m3[10];
while(scanf("%s%d",m3,&n)==2) {
for(i=0,zheng=1;i<=strlen(m3);i++)
{
if(m3[i]=='.') {zheng=0; break;}
}
if(zheng==0){
k=i; lenth=strlen(m3)-k-1;
for(m1=0,i=0;i<k;i++)
{
m1=m1+mi(k-i-1)*(m3[i]-48);
}
for(i=0;i<lenth;i++) m2[i]=m3[i+k+1];
m2[lenth]='\0';
m=0; ling=0;
lenth=strlen(m2);
m=m+m1*mi(lenth);
for(i=lenth;i>0;i--)
m=m+((int)m2[i-1]-48)*mi(lenth-i);
lenth=lenth*n;
l=1;a[1]=1;
for(i=1;i<=n;i++)
{
b=0;
for(j=1;j<=l;j++)
{
b+=a[j]*m;
a[j]=b%10;
b=b/10;
}
while(b!=0)
{
l++;
a[l]=b%10;
b=b/10;
}
}
for(i=1;i<=lenth;i++)
{
if(a[i]==0) ling++;
else break;
}
if(m1!=0){
for(i=l;i>ling;i--)
{
if(i==lenth) printf("%c",'.');
printf("%d",a[i]);
}
}
else{
printf("%c",'.');
for(i=lenth;i>ling;i--){
if(0<a[i]&&a[i]<10) printf("%d",a[i]);
else printf("%d",0);
}
}
printf("\n");
}
else{
for(i=0,m=0;i<strlen(m3);i++) m=m+(m3[i]-48)*mi(strlen(m3)-i-1);
l=1;a[1]=1;
for(i=1;i<=n;i++)
{
b=0;
for(j=1;j<=l;j++)
{
b+=a[j]*m;
a[j]=b%10;
b=b/10;
}
while(b!=0)
{
l++;
a[l]=b%10;
b=b/10;
}
}
for(i=l;i>0;i--)
{
printf("%d",a[i]);
}
printf("\n");
}
}
return 0;
}
Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator