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

为什么WA啊,谁给个超过15步的数据让我测试一下,谢谢

Posted by 1234554321 at 2005-03-17 20:48:07 on Problem 1016
#include<iostream.h>
#include<string.h>
char*func(char*,int);

int main()
{
	char Num[16][81];
	int i,count=0;

	while(1)
	{
		cin>>Num[0];
		//cout<<Num[0]<<endl;

		if(Num[0][0]=='-') break;
		i=0;
		while(i<15)
		{
				count=0;
				strcpy(Num[i+1],func(Num[i],strlen(Num[i])));
								if(strcmp(Num[i+1],Num[i])==0)
				{
					if(i==0) cout<<Num[0]<<" is self-inventorying "<<endl;
					else cout<<Num[0]<<" is self-inventorying after "<<i<<" steps "<<endl;
					//count=1;
					break;
				}

				if(strcmp(Num[i+1],Num[0])==0&&i>0)
				{
					cout<<Num[0]<<" enters an inventory loop of length "<<i+1<<endl;
					//count=1;
					break;
				}
				
				for(int j=0;j<=i;j++)
				{
					if(strcmp(Num[i+1],Num[j])==0)
					{
						cout<<Num[0]<<" enters an inventory loop of length "<<i+1-j<<endl;
						count=1;
						break;
					}
				}
				
				
				
				if(count==1) break;
				i++;
		}
		if(i>=15) cout<<Num[0]<<" can not be classified after 15 iterations "<<endl; 
		
	}
	return 0;
}


char* func(char*a,int l)
{
	int b[11]={0,0,0,0,0,0,0,0,0,0};
	char c[21];
	int k=0;
	for(int i=0;i<l;i++)
	{
		if(a[i]<='9'&&a[i]>='0')
		b[int(a[i]-'0')]++;
	}
	
	for(int j=0;j<10;j++)
	{
		if(b[j]!=0)
		{
			c[k]=b[j]+'0';
			c[k+1]=j+'0';
			k+=2;
		}
	}
	c[k]='\0';
	return &c[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