| ||||||||||
| 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 | |||||||||
Re:所有测试数据都通过,却无法提交,郁闷ingIn Reply To:所有测试数据都通过,却无法提交,郁闷ing Posted by:hellofalcon at 2006-07-05 17:39:24 > 大家帮忙看看哦,我是昨天刚开始来做题的,不是很清楚这个答题的规则
>
> 我的测试结果:
> falcon@falcon:~/program/c/code/acm$ time ./1001 <a
>
> 548815620517731830194541.899025343415715973535967221869852721
> .00000005148554641076956121994511276767154838481760200726351203835429763013462401
> 43992025569.928573701266488041146654993318703707511666295476720493953024
> 29448126.764121021618164430206909037173276672
> 90429072743629540498.107596019456651774561044010001
> 1.126825030131969720661201
>
> real 0m0.014s
> user 0m0.011s
> sys 0m0.003s
>
> 结果对着,时间好象也不多亚?
> 请教高手
>
> Wrong Answer
干脆把代码贴上来,希望大家帮个忙阿/
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
#define Len 200
char r[2*Len-1];
void lnmp(char *cs,char *bcs)
{
char cjr[Len][Len][2];
int i,j,k,l,cslen,bcslen,rlen,jw=0,temp,out=0;
cslen=strlen(cs);
bcslen=strlen(bcs);
rlen=cslen+bcslen-1;
for(i=cslen-1;i>=0;i--)
for(j=bcslen-1;j>=0;j--)
{
temp=(cs[i]-'0')*(bcs[j]-'0');
cjr[j][i][0]=temp/10;
cjr[j][i][1]=temp%10;
}
for(l=rlen;l>=0;l--)
{
temp=jw;
for(i=cslen-1;i>=0;i--)
for(j=bcslen-1;j>=0;j--)
for(k=1;k>=0;k--)
if(l==i+j+k) temp=temp+cjr[j][i][k];
jw=temp/10;
r[l]=temp%10+'0';
}
for(l=0;l<rlen;l++) if(r[l]!='0') break;
if(l) for(i=l;i<=rlen+1;i++) r[i-l]=r[i];
}
int main()
{
char R[Len];
int N;
int i,j,k,xsdws,temp,flag;
while(scanf("%s %d",R,&N)!=EOF)
{
i=1,flag=0;
temp=strlen(r);
for(i=0;i<temp;i++) r[i]='\0';
temp=strlen(R);
for(i=0;i<temp;i++)
if(R[i]=='.') break;
if(i!=temp)
{
flag=1;
xsdws=(temp-i-1)*N;
for(j=i;j<=temp;j++)
R[j]=R[j+1];
}
for(i=0;i<temp;i++) if(R[i]!='0') break;
if(i) for(j=i;j<=temp;j++) R[j-i]=R[j];
strcpy(r,R);
for(i=1;i<N;i++)
lnmp(r,R);
temp=strlen(r);
if(!flag)
{
for(j=0;j<temp;j++)
putchar(r[j]);
}
else
{
i=temp-xsdws;
if(temp>xsdws)
{
i=temp-xsdws;
for(j=0;j<i;j++) putchar(r[j]);
putchar('.');
for(k=temp-1;k>=0;k--) if(r[k]!='0') break;
for(j=i;j<k+1;j++) putchar(r[j]);
}
else
{
i=xsdws-temp;
putchar('.');
for(j=0;j<i;j++) putchar('0');
for(j=0;j<temp;j++) putchar(r[j]);
}
}
putchar('\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