| ||||||||||
| 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:谁给看看下面这个程序哪错了?discuss里所有的测试数据都对,非常感谢In Reply To:谁给看看下面这个程序哪错了?discuss里所有的测试数据都对,非常感谢 Posted by:lingd at 2008-06-08 15:58:08 > #include <stdio.h>
> #include <string.h>
> #include <stdlib.h>
>
> void Multiply(short *buf,int i,int length,long multi,long carry)
> {
> long temp;
> if(i>=length)
> return;
> temp=buf[i]*multi+carry;
> buf[i]=temp%10;
> Multiply(buf,i+1,length,multi,temp/10);
> }
>
> void main()
> {
> short buf[500];
> long data;
> long tempdata;
> double input;
> int trailingzero,leadingzero;
> int n;
> int i;
> short residue;
>
> while(scanf("%lf%d",&input,&n)==2) -2?
> {
> if(n==0)
> {
> printf("1\n");
> continue;
> }
>
> if(input==0.0)
> {
> printf("0\n");
> continue;
> }
>
> data=(long)(input*100000);
>
> memset(buf,0,500*sizeof(short));
> i=0;
> tempdata=data;
> while(1)
> {
> residue=tempdata%10;
> buf[i]=residue;
> i++;
> tempdata=tempdata/10;
> if(tempdata==0)
> break;
> }
>
>
> for(i=1;i<n;i++)
> Multiply(buf,0,i*10+10,data,0);
>
> for(i=0;i<5*n&&buf[i]==0;i++);
> trailingzero=i;
> for(i=10*n-1;i>(5*n-1)&&buf[i]==0;i--);
> leadingzero=i;
> for(i=leadingzero;i>=trailingzero;i--)
> {
> if(i==5*n-1)
> printf("%c",'.');
> printf("%d",buf[i]);
> }
> printf("\n");
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator