#include #include char buffer[50]; int cisla[35]; int cisla2[35]; int len; int start; void normalize() { for (int i=34; i>0; i--) { cisla[i-1]+=cisla[i]/10; cisla[i] %= 10; } } void krat26() { for (int i=0; i<35; i++) cisla[i]*=26; normalize(); } void nul() { for (int i=0; i<35; i++) cisla[i]=cisla2[i]=0; } void algChar() { nul(); for (int i=0; i=0 && cisla[idx]<0) { cisla[idx]=25; if (idx>0) cisla[idx-1]--; idx--; } */ } /*void minus26() { cisla[34]=cisla[34]-26; int idx=34; while (idx>0 && cisla[idx]<0) { cisla[idx]+=26; cisla[idx-1]-=1; } */ //} void algNum() { nul(); normalizeInput(); int idx=0; int ofs=0; while (!isNul()) { cisla2[idx]=zbytek26()+ofs; /* if (cisla2[idx]==0) { minus26(); // cisla2[idx]=26; // ofs--; }*/ idx++; del26(); } start=idx-1; /* for (int i=idx-1; i>=0; i--) if (cisla[i]==0) { cisla[i]=26; } */ for (int i=0; i<=start; i++) { cisla2[i]=cisla2[i]-ofs; ofs=0; if (cisla2[i]==0) { ofs=1; cisla2[i]=26; } } start-=ofs; for (int i=start; i>=0; i--) { // printf("-%d-", cisla2[i]); int pom=cisla2[i]; /* ofs=0; if (pom==0) { pom=26; ofs=1; }*/ printf("%c", pom+'a'-1); } printf("\n"); } int main() { while (1) { gets(buffer); len=strlen(buffer); if ((len==1) && (buffer[0]=='*')) break; if (buffer[0]<'a') algNum(); else algChar(); } return 0; }