nyoj 303 序号互换

来源:互联网 发布:foxmail公司邮箱数据 编辑:程序博客网 时间:2024/05/18 22:54
//果然一道题 今天不会放几天再看看 就会了
#include <stdio.h>#include <stdlib.h>int main(){void change(int sum);char c;int n,i,flag,sum;scanf("%d",&n);getchar();while(n--){flag=sum=0;while(scanf("%c",&c)!=EOF&&c!='\n'){if(c>='0'&&c<='9')sum=sum*10+c-'0',flag=1;if(c>='A'&&c<='Z')sum=sum*26+c-64;//序号转数字    }if(flag)change(sum);elseprintf("%d",sum);printf("\n");}return 0;}void change(int sum)//数字转序号{char a[27]={"ZABCDEFGHIJKLMNOPQRSTUVWXY"},record[27];int j=0;while(sum){record[j++]=a[sum%26];if(sum%26)sum=sum/26;elsesum=sum/26-1;//自己实践的  如果sum%26==0比如sum等于26要显示结果Z,而a[0]='Z',sum- -;}for(int i=j-1;i>=0;i--)putchar(record[i]);}        

0 0
原创粉丝点击