| ||||||||||
| 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 | |||||||||
1016题快把我折磨死了,救救我!SOS!!程序如下:#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: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator