| ||||||||||
| 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 | |||||||||
能想到的测试用例都通过了,为什么还不对呢,哪里错了呢?#include <string>
#include <iostream>
using namespace std;
string fun(string n)
{
int c[10]={0,0,0,0,0,0,0,0,0,0};
int i,j;
string res;
for( i=0; i < n.length();i++)
{
for(j=0;j<10;++j)
{
if(j==(int)n[i]-48)
{
c[j]=c[j]+1;
}
}
}
for(i=0;i<10;i++)
{
if(c[i]>0)
{
res=res+(char)(c[i]+48)+(char)(i+48);
}
}
return res;
}
int main()
{
string s,a;
string b[16];
while (cin >> s && s!="-1")
{
int i=0,j=0;
int p=1;
b[0]=s;
for (i=1; i<16; i++)
{
s = fun(s);
b[i] = s;
}
for (i=0; i<16&&p==1; i++)
{
for (j=i; j<=16; j++)
{
if (b[i]==b[j+1])
{
p = 0;
break ;
}
}
}
i--;
j++;
cout << i << " " << j << endl;
if (i==0&&j==1)
{
cout << b[0] << " is self-inventorying" << endl;
}
if (i!=0&&j==i+1)
{
cout << b[0] << " is self-inventorying after " << i << " steps" << endl;
}
if (i<=14&&j<=14&&(j-i)>1)
{
cout << b[0] << " enters an inventory loop of length " << j-i << endl;
}
if (i>=15)
{
cout << b[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