zoukankan      html  css  js  c++  java
  • 序号互换

    **题目描述
    Dr.Kong设计了一个聪明的机器人卡多,卡多会对电子表格中的单元格坐标快速计算出来。单元格的行坐标是由数字编号的数字序号,而列坐标使用字母序号。观察字母序号,发现第1列到第26列的字母序号分别为A,B,…,Z,接着,第27列序号为AA,第28列为AB,依此类推。

    若给Dr.Kong的机器人卡多一个数字序号(比如32),它能很快算出等价的字母序号(即AF),若给机器人一个字母序号(比如AA)),它也能很快算出等价的数字序号(27),你能不能与卡多比试比试,看谁能算得更快更准确。

    输入
    第一行: N 表示有多少组测试数据。

    接下来有N行, 每行或者是一个正整数,或者是一个仅由大写字母组成的字符串。

    输出
    对于每一行测试数据,输出一行。如果输入为一个正整数序号,则输出等价的字母序号;如果输入为字符串,则输出等价的数字序号。

    样例输入
    4
    27
    G
    AA
    ALK
    样例输出
    AA
    7
    27
    999**
    题意:输入为数字时,对26取余,输出26个字母中的序列号对应的字母。
    输入为字符串时,从左向右,以26为基数把字母对应的序列号进行转换。

    #include<stdio.h>
    #include<string.h>
    
    int main()
    {
        int i,t,find ,sum,l, j;
        int n;
        char str[200],str2[200];
        scanf("%d",&t);
        getchar();
        while(t-- )
        {
            memset(str,0,sizeof(str));
            memset(str2,0,sizeof(str2));
            scanf("%s",str);
            l =strlen(str);
            i = 0;
            find = 0;
            sum = 0;
            /*由于是字符串形式读入,如果是数字,要将其从字符转换为数字*/
            while( str[i] - '0' >= 0 && str[i]-'0' <= 9)
            {
                sum = sum *10 + (str[i]-'0');
                find = 1;
                i++;
            }
            /*如果输入为字符串*/
            if(!find)
            {
                for( i = 0; str[i]!=''; i ++)
                {
                    sum = sum*26 + (str[i]-'A'+1) ;
                }
                printf("%d
    ",sum);
            }
            else/*如果输入为数字*/
            {
                j = 0;
                while(sum > 0)
                {
                    if(sum %26 != 0)
                    {
                        str2[j++] = sum%26+('A'-1);
                        sum/=26;
                    }
                    else
                    {
                        str2[j++] = 'Z';
                        sum = (sum-1)/26;
                    }
                }
                str2[j] = '';
                l = strlen(str2);
                for(j = l-1; j >= 0; j --)
                    printf("%c",str2[j]);
                printf("
    ");
            }
        }
        return 0;
     }
  • 相关阅读:
    Android 中的selector
    Android 中SimpleDateFormat的使用注意
    Android 和iOS中 View的滚动
    Android 和iOS中 Gesture 和 Touch
    iOS 的UIWindow 类研究
    iOS keyChain 的使用
    关于Intent ,Task, Activity的理解
    Android Broadcast 和 iOS Notification
    Android 程序中得到root activity的引用
    ios中的addChildViewController 和 android中的fragment
  • 原文地址:https://www.cnblogs.com/hellocheng/p/7350159.html
Copyright © 2011-2022 走看看