Online JudgeProblem SetAuthorsOnline ContestsUser
Web Board
Home Page
F.A.Qs
Statistical Charts
Problems
Submit Problem
Online Status
Prob.ID:
Register
Update your info
Authors ranklist
Current Contest
Past Contests
Scheduled Contests
Award Contest
User ID:
Password:
  Register

Re:我是新手 累计奋战10多个小时 终于accepted!代码如下,和大家交流一下

Posted by zbt2222 at 2009-07-20 09:43:02 on Problem 1001
In Reply To:我是新手 累计奋战10多个小时 终于accepted!代码如下,和大家交流一下 Posted by:yanzhengfei at 2009-05-19 22:54:20
>  #include<iostream>
> using namespace std;
> 
> void calculate(int a[],int n,int tag)
> {
> 	int m,i,j,s,t,k,g=0,flag;
> 	int b[200],c[200],d[200];
> 	for(i=0;i<200;i++)b[i]=d[i]=c[i]=-1;
>     for(i=0;a[i]!=-1;i++)
> 		b[i]=a[i]; 
> 	n--;
> 	while(n)
> 	{
>  	 flag=1;k=-1;
> 	for(i=0;a[i]!=-1;i++)
> 	{
> 		t=0;s=0;g=0;k++;
> 		for(j=0;b[j]!=-1;j++)
> 		{
> 			m=(a[i]*b[j])%10+t;
> 			t=(a[i]*b[j])/10;
> 			if(m>=10){c[g]=m%10;t++;}
> 			else c[g]=m;
> 			g++;
> 		}c[g]=t;g=0;
> 		if(flag)
> 		{
> 			for(j=0;c[j]!=-1;j++)
> 				d[j]=c[j];
> 			flag--;
> 		}
> 		else
> 			for(j=0;c[j]!=-1;j++)
> 			{ 
> 				m=d[g+k]+c[j];
> 			    if((d[g+k+1]==-1)&&(c[j+1])!=-1)d[g+k+1]=0;
> 			    t=m%10+s;
> 				s=m/10;
> 				if(t>=10){d[g+k]=t%10;s++;}
> 				else d[g+k]=t;
> 			    g++;
> 			} 
>        
>         for(j=0;j<200;j++)c[j]=-1;
> 	}//for
> 	
> 	for(i=0;i<200;i++)
> 		b[i]=d[i];
> 	for(i=0;i<200;i++)
> 		d[i]=-1;
> 	 n--;
> 	}//while
> 	j=0;flag=0;
> 	for(i=0;i<200;i++)
> 	{
> 		if(!b[i]&&tag>i)j++;
> 		else
> 			break;
> 	}
> 	for(i=199;i>=j;i--)
> 	{
> 		if(b[i]!=-1)
> 		{
> 		   if(b[i]==0)
> 			{if(flag)cout<<b[i];}
> 	       else
> 			{cout<<b[i];flag=1;}
> 		}
> 		if(i==tag&&tag!=j){cout<<".";flag=1;}
> 	}
> 	cout<<endl;
> }
> 
> int main()
> {
> 	int n,i,j,tag;
> 	int a[7];char str[7];
>     while(cin>>str>>n)
> 	{
> 		tag=1;
>         for(i=0;i<7;i++)a[i]=-1;
> 	    for(i=0;str[i]!='\0';i++)
> 		{
> 		    if(str[i]!='.')tag++;
> 	        else
> 				{
> 		    	  for(;i<7;i++)
> 			    	str[i]=str[i+1];
> 			      break;
> 				}
> 		}
> 	    for(i=0;str[i]!='\0';i++);
>         for(j=0;j<=i-1;j++)
> 		a[j]=str[i-1-j]-'0';
> 	    tag=n*(6-tag);
> 		calculate(a,n,tag);
> 	}	
> 	return 0;
> }

Followed by:

Post your reply here:
User ID:
Password:
Title:

Content:

Home Page   Go Back  To top


All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator