⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 1479.cpp

📁 杭电 acm部分代码 有兴趣的可以下载 谢谢
💻 CPP
字号:
#include<iostream>
#include<string>
#include<algorithm>
using namespace std;
char init[200],change[20][200];
void oprate(){
    int len=strlen(init);
    int j,k,m,d;
    char c;
    for(j=0,c='0';c<='9';c++){
        m=count(init,init+len,c);
        if(m>0){
            if(m>=10){
                change[1][j++]=m/10+48;
                change[1][j++]=m%10+48;
            }
            else
                change[1][j++]=m+48;
            change[1][j++]=c;
        }
    }
    if(strcmp(change[1],init)==0){
        cout<<init<<" is self-inventorying\n";
        return;
    }
    else{
        strcpy(change[0],init);
        k=1;
        while(k++<15){
            len=strlen(change[k-1]);
            for(j=0,c='0';c<='9';c++){
                m=count(change[k-1],change[k-1]+len,c);
                if(m>0){
                    if(m>=10){
                        change[k][j++]=m/10+48;
                        change[k][j++]=m%10+48;
                    }
                    else
                        change[k][j++]=m+48;
                    change[k][j++]=c;
                }
            }
            if(strcmp(change[k],change[k-1])==0){
                cout<<init<<" is self-inventorying after "<<k-1<<" steps\n";
                return;
            }
            else{
                for(d=0;d<k-1;d++)
                    if(strcmp(change[d],change[k])==0){
                        cout<<init<<" enters an inventory loop of length "<<k-d<<endl;
                        return;
                    }
            }
        }
    }
    cout<<init<<" can not be classified after 15 iterations\n";
}
void main()
{
    while(cin>>init,strcmp("-1",init)){
        oprate();
        memset(init,0,sizeof(init));
        memset(change,0,sizeof(change));
    }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -