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:1016题快把我折磨死了,救救我!SOS!!程序如下:

Posted by qaz at 2004-03-05 21:21:45
In Reply To:1016题快把我折磨死了,救救我!SOS!!程序如下: Posted by:qaz at 2004-03-05 00:06:04
> #include<iostream.h>
> #include<string.h>
> 
> char Number[16][80];
> int IsInventory;
> 
> void GetInventory(int n)
> {
> 	int i=0,j=0;
> 	int DigitNum[10]={0,0,0,0,0,0,0,0,0,0};
> 
> 	while(Number[n][i]-'0'>=0 && Number[n][i]-'9'<=0){
> 		DigitNum[Number[n][i]-'0']++;
> 		i++;
> 	}
> 
> 	for(i=0;i<10;i++){
> 		if (DigitNum[i]!=0){
> 			if (DigitNum[i]>10){	//一种数字的个数可能大于10 (占两位)
> 				Number[n+1][j]=DigitNum[i]/10+'0';
> 				j++;
> 			}
> 			Number[n+1][j]=DigitNum[i]%10+'0';
> 			Number[n+1][j+1]=i+'0';
> 			j=j+2;
> 		}
> 	}
> 	Number[n+1][j]='\0';	//字符串结尾加'\0'
> }
> 
> void main()
> {
> 	int i,j;
> 
> 	while(Number[0][0]!='-'){
> 		for (i=0;i<16;i++)
> 			strcpy(Number[i],"");
> 		IsInventory=0;
> 		cin>>Number[0];
> 		if (Number[0][0]!='-'){
> 			for (i=0;i<15 && IsInventory==0;i++){
> 				GetInventory(i);
> 				//cout<<Number[i+1]<<endl;////
> 				for (j=0;j<i+1 && IsInventory==0;j++){
> 					if (strcmp(Number[i+1],Number[j])==0){
> 						IsInventory=1;
> 						if (i==0)
> 							cout<<Number[0]<<" is self-inventorying"<<endl;
> 						if (i!=0 && i==j)
> 							cout<<Number[0]<<" is self-inventorying after "<<i<<" steps"<<endl;
> 						if (i!=0 && i!=j)
> 							cout<<Number[0]<<" enters an inventory loop of length "<<i-j+1<<endl;
> 					}
> 				}
> 			}
> 			if (IsInventory==0)
> 				cout<<Number[0]<<" can not be classified after 15 iterations"<<endl;
> 		}
> 	}
> }

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