NYOJ303 序号互换

原题链接


附ac代码:

#include <stdio.h>
#include <ctype.h>
#include <string.h>

int main(){
	char s[15];
	int t, len, i, sum;
	scanf("%d", &t);
	while(t-- && scanf("%s", s)){		
		if(isalpha(s[0])){
			len = strlen(s);
			for(i = sum = 0; i != len; ++i)
				sum = sum * 26 + (s[i] - 'A' + 1);
			printf("%d\n", sum);
		}else{
			sscanf(s, "%d", &sum);
			for(i = 0; sum; ++i){
				s[i] = (sum - 1) % 26 + 'A';
				sum = (sum  - 1) / 26; //关键
			}
			for(--i; i >= 0; --i)
				putchar(s[i]);
			putchar('\n');
		}
	}
	return 0;
}


posted on 2014-02-18 19:20  长木Qiu  阅读(119)  评论(0编辑  收藏  举报