| ||||||||||
| 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:1016题快把我折磨死了,救救我!SOS!!程序如下:In Reply To:1016题快把我折磨死了,救救我!SOS!!程序如下: Posted by:qaz at 2004-03-05 00:06:04 > #include<iostream.h>
> #include<string.h>
>
> char Number[16][80];
> int IsInventory;
>
> void GetInventory(int n)
> {
> int i=0,j=0;
> int DigitNum[10]={0,0,0,0,0,0,0,0,0,0};
>
> while(Number[n][i]-'0'>=0 && Number[n][i]-'9'<=0){
> DigitNum[Number[n][i]-'0']++;
> i++;
> }
>
> for(i=0;i<10;i++){
> if (DigitNum[i]!=0){
> if (DigitNum[i]>10){ //一种数字的个数可能大于10 (占两位)
> Number[n+1][j]=DigitNum[i]/10+'0';
> j++;
> }
> Number[n+1][j]=DigitNum[i]%10+'0';
> Number[n+1][j+1]=i+'0';
> j=j+2;
> }
> }
> Number[n+1][j]='\0'; //字符串结尾加'\0'
> }
>
> void main()
> {
> int i,j;
>
> while(Number[0][0]!='-'){
> for (i=0;i<16;i++)
> strcpy(Number[i],"");
> IsInventory=0;
> cin>>Number[0];
> if (Number[0][0]!='-'){
> for (i=0;i<15 && IsInventory==0;i++){
> GetInventory(i);
> //cout<<Number[i+1]<<endl;////
> for (j=0;j<i+1 && IsInventory==0;j++){
> if (strcmp(Number[i+1],Number[j])==0){
> IsInventory=1;
> if (i==0)
> cout<<Number[0]<<" is self-inventorying"<<endl;
> if (i!=0 && i==j)
> cout<<Number[0]<<" is self-inventorying after "<<i<<" steps"<<endl;
> if (i!=0 && i!=j)
> cout<<Number[0]<<" enters an inventory loop of length "<<i-j+1<<endl;
> }
> }
> }
> if (IsInventory==0)
> cout<<Number[0]<<" can not be classified after 15 iterations"<<endl;
> }
> }
> }
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator