| ||||||||||
| 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 | |||||||||
Re:现在OK了,程序供后来者参考In Reply To:我的程序已经反复检查了,就是WA,请各位大虾指点迷津,小女感激不尽 Posted by:jane at 2005-05-15 11:43:05 > #include<iostream.h>
> #include<string.h>
> void change(char *a,int *n,char *b)
> {
> int i,d,j;
> for(i=0;a[i]!='\0';i++)
> {
> d=a[i]-48;
> n[d]++;
> }
> j=0;
> for(i=0;i<10;i++)
> {
> if(n[i]>0&&n[i]<10)
> {
> b[j++]=n[i]+48;
> b[j++]=i+48;
> }
> else if(n[i]>=10)
> {
> b[j++]=n[i]/10+48;
> b[j++]=n[i]%10+48;
> b[j++]=i+48;
> }
> }
> b[j]='\0';
> }
> int main()
> {
> int num[10],i,j;
> char dig[81],temp[20][100];
> do{
> cin>>dig;
> if(dig[0]=='-')
> break;
> strcpy(temp[0],dig);
> i=0;
> while(i<15)
> {
> for(j=0;j<10;j++)
> num[j]=0;
> change(temp[i],num,temp[i+1]);
> if(strcmp(temp[i],temp[i+1])==0)
> {
> if(i==0)
> cout<<dig<<" is self-inventorying"<<endl;
> else if(i==1)
> cout<<dig<<" is self-inventorying after "<<i<<" step\n";
> else
> cout<<dig<<" is self-inventorying after "<<i<<" steps\n";
> break;
> }
> else
> {
> for(j=0;j<i;j++)
> {
> if(strcmp(temp[i+1],temp[j])==0)
> {
> cout<<dig<<" enters an inventory loop of length "<<i+1-j<<endl;
> break;
> }
> }
> if(j<i)
> break;
> }
> i++;
>
> }
> if(i==15)
> cout<<dig<<" can not be classified after 15 iterations\n";
> }while(1);
> return 0;
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator