poj-1016

#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 2774求两个字符串的最长公共子串,可以二分长度,把A串中长度为mid的子串的hash值存入hash ta...
    Out_Of_Cage阅读 3,414评论 0 0
  • 题目链接:http://poj.org/problem?id=1598技巧:句子中单词的查找。可以通过替换掉不是字...
    希崽家的小哲阅读 1,332评论 0 1
  • POJ 1700 题意 n个人要过河,一次只能同时两个人过河,两个人过河的时间取决于慢的一个。求最快的过河的时间 ...
    vanadia阅读 1,254评论 0 0
  • 这道题我都第一反应就是HDU的一道题叫非常可乐,所以就模仿着敲了,但是有个难点就是要正着输出操作步骤,哇,这个卡了...
    Anxdada阅读 2,586评论 0 0
  • POJ 1611 - The Suspects Severe acute respiratory syndrome...
    passwd_阅读 2,607评论 0 0