注意模后余数为0时,要把除以26后的新数据减1,为什么这样,要靠大胆尝试。我在对小比赛中坑了一下午啊,直到比赛结束也没写出这道题。。。。要死了。。
#include<stdio.h> #include<string.h> int main() { int n,i,j,row,col,len; char str[20],ans[20]; scanf("%d",&n); while(n--) { memset(ans,0,sizeof(ans)); scanf("%s",str); len=strlen(str); int er=0,yi=0; if(str[1]>='0'&&str[1]<='9') { yi=1; for(i=1;i<len;i++) { if(!(str[i]>='0'&&str[i]<='9')) { er=1; break; } } if(er==1){ er=1; row=col=0; for(i=1;;i++) { if(!(str[i]>='0'&&str[i]<='9'))break; row=row*10+(str[i]-'0'); } for(i++;i<len;i++) { col=col*10+(str[i]-'0'); } int temp,k=0; while(col) { temp=col%26; col=col/26; if(temp==0) ans[k++]='Z',col--; else ans[k++]='A'+temp-1; } ans[k]='