codeforces-1B Spreadsheets

题意:有两种电子表格计数系统:
              1、列为A-Z字母计数,行为数字计数。
              2、RXCY 形式
        判断输入格式,并进行相互转化
难点:输入计数系统的判断
思路:通过sscanf函数限定输入格式,我们可以快速判别输入计数系统,进行相应转化
#include "stdio.h"
void PrintColumn(int y){
    //列数为0,除尽
    if(y){
        //递归打印  
        PrintColumn((y-1)/26);
        putchar(65+(y-1)%26);
    }
}

int main()
{
    /* code */
    int n,x,y;
    char s[64],*p;
    scanf("%d ",&n);
    while(n--){
        gets(s);
        if(sscanf(s,"%*c%d%*c%d",&x,&y)==2)
        {
                //为RXCY计数系统
                //打印字母列
                PrintColumn(y);
                //打印数字行
                printf("%d\n",x);
        }
        else{
                //  C    R
                // 字母  数字 计数系统
                for(x=0,p=s;*p>64;++p)
                    //列字母转化成数字
                    x=x*26 + *p - 64;
                
                printf("R%sC%d\n",p,x);
            }   
    }
    return 0;
}

你可能感兴趣的:(codeforces-1B Spreadsheets)