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

求你帮帮忙,我哪个数据通不过!万分感谢!

Posted by wqfcr at 2003-12-19 10:45:55 on Problem 1016
#include <iostream.h>
#include <string.h>
char a[100];
int gs[10];
char b[17][39];
char c;
int w,k,leng,ok=0;
void deal(int i)
{
	int q,l,j=0;
	l=strlen(b[i]);
	for(q=0;q<10;q++)
		gs[q]=0;
	for(q=0;q<l;q++)
		gs[(int)b[i][q]-48]++;
	for(q=0;q<10;q++)
	{
		if(gs[q]==0)
			continue;
		if(gs[q]<10)
		{
			b[i+1][j]=(char)(gs[q]+48);
			j++;
			b[i+1][j]=(char)(q+48);
			j++;
		}
		else
		{
			b[i+1][j]=(char)(gs[q]/10+48);
			j++;
			b[i+1][j]=(char)(gs[q]%10+48);
			j++;
			b[i+1][j]=(char)(q+48);
		}
	}
}
void main()
{
	cin>>a;
	while(a[0]!='-')
	{
		ok=0;
		for(w=0;w<10;w++)
			gs[w]=0;
		for(w=0;w<=16;w++)
			strcpy(b[w],"");
		for(w=0;w<=16;w++)
			for(k=0;k<39;k++)
				b[w][k]=c;
		k=0;
		leng=strlen(a);
    	for(w=0;w<leng;w++)
	    	gs[(int)(a[w]-48)]++;
    	for(w=0;w<10;w++)
		{
     		if(gs[w]==0)
				continue;
    	  	if(gs[w]<10)
			{
	     		b[1][k]=(char)(gs[w]+48);
	    		k++;
	    		b[1][k]=(char)(w+48);
	     		k++;
			}
	    	else
			{
	    		b[1][k]=(char)(gs[w]/10+48);
	    		k++;
	    		b[1][k]=(char)(gs[w]%10+48);
	     		k++;
	    		b[1][k]=(char)(w+48);
				k++;
			}
		}
		cout<<a;
		if(strcmp(b[1],a)==0)
		{
			cout<<" is self-inventorying"<<endl;ok=1; 
		}
		else
		{
			for(w=1;w<=14;w++)
			{
				deal(w);
				if(strcmp(b[w+1],a)==0)
				{
					cout<<" enters an inventory loop of length "<<w+1<<endl;ok=1;
					break;
				}
				else
				{
					for(k=1;k<=w;k++)
					{
						if(strcmp(b[w+1],b[k])==0)
						{
							if(k==w)
								cout<<" is self-inventorying after "<<w<<" steps"<<endl;
							else
								cout<<" enters an inventory loop of length "<<w+1-k<<endl;
							ok=1;break;
						}
					}
					if(ok==1)
						break;
				}
			}
		}
		if(ok==0)
			cout<<" can not be classified after 15 iterations"<<endl;
	//	for(w=1;w<=16;w++)
	//		if(strcmp("",b[w])!=0)
	//			cout<<b[w]<<endl;
		cin>>a;
	}
}

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