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 |
Runtime Error (怎么可能???难道有循环之后长度变化的情况!!!!??????????)#include<iostream> #include<string> #include<vector> using namespace std; vector<string> s(17); int main() { int K,L,M; int p; while(cin>>s[0]) { if(s[0]=="-1")break; L=0; while(L<16) { p=1; int num[10]={0};//纪录各数字个数 //纪录数字0~9分别有多少个 for(K=0;s[L][K];++K) { num[s[L][K]-'0']++; } M=0; ++L; s[L]=s[L-1];//给相同长度 //生成s[L+1] for(K=0;K<10;++K) { if(num[K]!=0) { s[L][M++]=num[K]+'0'; s[L][M++]=K+'0'; } } //cout<<s[1]<<'\n'<<s[2]<<'\n'<<endl; //self-inventorying情况 if(s[1]==s[0] ) { cout<<s[0]<<" is self-inventorying"<<endl; break; } //is self-inventorying after ... steps情况 else if(s[L]==s[L-1]) { cout<<s[0]<<" is self-inventorying after "<<L-1<<" steps"<<endl; break; } //enters an inventory loop of lenth...情况 else { for(K=0;K<L;++K) { if(s[L]==s[K]) { cout<<s[0]<<" enters an inventory loop of length " <<L-K<<endl; p=0; break; } } } if(p==0)break; } //15次后仍无解的情况 if(L==16)cout<<s[0]<<" can not be classified after 15 iterations"<<endl; } return 0; } Followed by:
Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator