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:谁能多给点数据测试啊,我写了一个晚上的代码,却不能ac(附代码和几个得到的数据)In Reply To:谁能多给点数据测试啊,我写了一个晚上的代码,却不能ac(附代码和几个得到的数据) Posted by:leevickwan at 2006-08-28 23:40:24 > 99.999 25 > 99975002999770012649468717709519310815545705768715.42652002479974457367312604296 > 4184298069822900531298735002299997000002499999 > 0.0001 25 > .0000000000000000000000000000000000000000000000000000000000000000000000000000000 > 000000000000000000001 > > > #include<iostream> > using namespace std; > > int result[126]; > int factor[6]; > int temp[126]; > int arr[126]; > > > void mul(int result[],int b) > { > int i=0; > for(i=0;i<126;i++) > arr[i]=0; > int carry=0; > int k=0; > for(i=0;i<126;i++) > { > k=carry+result[i]*b; > arr[i]=k%10; > carry=k/10; > } > > > } > > > void add(int temp[],int arr[],int index) > { > int carry=0; > int i=0; > int k=0; > for(i=0;i<126;i++) > { > k=temp[i+index]+arr[i]+carry; > temp[i+index]=k%10; > carry=k/10; > } > > > } > > // > void mul(int result[],int factor[]) > { > > int i=0; > for(i=0;i<126;i++) > temp[i]=0; > for(i=0;i<5;i++) > { > mul(result,factor[i]); > add(temp,arr,i); > } > > for(i=0;i<126;i++) > result[i]=temp[i]; > } > > > int main(void) > { > char in[7];; > int n=0; > while(cin>>in>>n) > { > > int point=0; > if(in[1]=='.') > point=1; > else > point=2; > int num=0; > while(in[7-num]=='0') > num++; > > int numofpoint=(5-point-num)*n; > > > > int i=0; > for(i=0;i<126;i++) > { > result[i]=0; > temp[i]=0; > arr[i]=0; > } > > for(i=5;i>=3;i--) > { > factor[5-i]=in[i]-48;//0,1,2 > result[5-i]=in[i]-48; > } > > factor[4]=in[0]-48; > result[4]=in[0]-48; > > if(point==1) > { > factor[3]=in[2]-48; > result[3]=in[2]-48; > } > else > { > factor[3]=in[1]-48; > result[3]=in[1]-48; > } > > for(i=0;i<n-1;i++) > { > mul(result,factor); > } > > int end=0; > while(result[125-end]==0) > end++; > int start=0; > while(result[start]==0) > { start++; > if(start==numofpoint) > break; > } > int k=start; > if(in[5]!='0') > start=0; > > if(125-end>=numofpoint) > for(i=125-end;i>=start;i--) > { > cout<<result[i]; > if(i==numofpoint&&i!=start-1) > cout<<'.'; > > } > else > { > cout<<'.'; > > for(i=numofpoint-1;i>=start;i--) > cout<<result[i]; > } > cout<<endl; > > } > //system("pause"); > return 0; > } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator