POJ-1016

来源:互联网 发布:mac mini 内存 编辑:程序博客网 时间:2024/06/14 05:55
#include<stdio.h>#include<string.h>void change(char *t, char *f){     int i;     int num[10]={0};     while (*t != '\0') {           num[*t - '0']++;           t++;     }     for (i = 0; i < 10; i++) {         if (num[i] > 0) {             if (num[i] > 9) {                *(f++) = num[i]/10 + '0';                num[i] %= 10;             }             *(f++) = num[i] + '0';             *(f++) = i+'0';         }         *f = '\0';     }}main(){      char str[16][81];      int i, j, sign;      for (scanf("%s", str[0]); strcmp(str[0], "-1");scanf("%s", str[0])) {          change(str[0], str[1]);          if (!strcmp(str[0], str[1])) {             printf("%s is self-inventorying\n", str);             continue;          }          for (i = 1, sign = 1; i < 15 && sign; i++) {              change(str[i], str[i+1]);              if (!strcmp(str[i], str[i+1])) {                 printf("%s is self-inventorying after %d steps\n", str[0], i);                 sign = 0;                 break;              }              for (j = 0; j < i; j++)                  if (!strcmp(str[j], str[i+1])) {                     printf("%s enters an inventory loop of length %d\n", str[0], i+1-j);                     sign = 0;                     break;                  }          }          if (sign)             printf("%s can not be classified after 15 iterations\n", str[0]);      } }

原创粉丝点击