#include<iostream>
#include<string>
#include<cstring>
using namespace std;
string input;
string temp;
string output;
int visit[10];
string HH[16];
int Loop(int k,string s){
int i;
for(i=0;i<k;i++)
if(HH[i]==s)
return i;
}
return -1;
}
int main(){
inti,j,k;
while(1){
cin>>input;
if(input=="-1")
break;
temp=input;
HH[0]=input;
for(k=1;k<=15;k++){
memset(visit,0,sizeof(visit));
output="";
i=0;
while(temp[i]!='\0'){
visit[temp[i]-'0']++;
i++;
}
for(j=0;j<10;j++){
char v='0'+j;
if(visit[j]>=10){
chart1='0'+visit[j]/10;
chart2='0'+visit[j]%10;
output=output+t1+t2+v;
}
else if(visit[j]>0){
chart3='0'+visit[j];
output=output+t3+v;
}
}
HH[k]=output;
if(output==temp&&k==1){
cout<<input<<" is self-inventorying"<<endl;
break;
}
else if(output==temp&&k!=1){
cout<<input<<" is self-inventorying after "<<k-1<<"steps"<<endl;
break;
}
else if(Loop(k,output)>=0){
cout<<input<<" enters an inventory loop of length "<<k-Loop(k,output)<<endl;
break;
}
else{
temp=output;
}
}
if(k>15){
cout<<input<<" can not be classified after 15 iterations"<<endl;
}
}
return0;
}
poj-1016
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。
推荐阅读更多精彩内容
- poj 2774求两个字符串的最长公共子串,可以二分长度,把A串中长度为mid的子串的hash值存入hash ta...
- 这道题我都第一反应就是HDU的一道题叫非常可乐,所以就模仿着敲了,但是有个难点就是要正着输出操作步骤,哇,这个卡了...
- POJ 1611 - The Suspects Severe acute respiratory syndrome...