zoukankan      html  css  js  c++  java
  • nyoj303-序号交换

    序号互换

    时间限制:1000 ms  |  内存限制:65535 KB
    难度:2
    描述

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

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

    输入
    第一行: N 表示有多少组测试数据。
    接下来有N行, 每行或者是一个正整数,或者是一个仅由大写字母组成的字符串。
    输入保证,所有数字序号和字母序号对应的数字序号均 ≤ 2*10^9
    输出
    对于每一行测试数据,输出一行。如果输入为一个正整数序号,则输出等价的字母序号;如果输入为字符串,则输出等价的数字序号。
    样例输入
    3 27 G AA
    样例输出
    AA 7 2
     
    #include <stdio.h>
    #include <string.h>
    int main()
    {
    int n;
    char a[100],b[100];
    int s;
    int l;
    int i,j;
    scanf("%d",&n);
    while(n--)
    {
    memset(b,0,sizeof(b));
    s=0;
    scanf("%s",a);
    l=strlen(a);
    if(a[0]>='A'&&a[0]<='Z'){
    for(i=0;i<l;i++)
    s=26*s+a[i]-'A'+1;
    printf("%d
    ",s);
    }
    else {
    for(i=0;i<l;i++)
    s=10*s+a[i]-'0';
    i=0;
    while(s>0)
    {
    b[i]=(s-1)%26+'A';
    s=(s-1)/26;
    i++;
    }
    for(j=99;j>=0;j--)
    if(b[j]!=0)
    break;
    for(i=j;i>=0;i--)
    printf("%c",b[i]);
    printf("
    ");
    }
    }
    return 0;
    }        

     

    #include<stdio.h>
    #include<math.h>
    int main()
    {
    	int n;
    	scanf("%d",&n);
    	while(n--)
    	{
    		int t,i=0,j,m,n;
    		char a[1000];
    		scanf("%s",a);
    		if(a[0]>='A'&&a[0]<='Z')
    		{
    		 while(a[i]!='')
    		{
    			t=26*t+a[i]-64;
    			i++;
    		}
    		printf("%d
    ",t);
    	}
    	else
    	{ j=0,t=0;
    		while(a[j]!='')
    		j++;
    		for(i=0;a[i]!='';i++,j--)
    		t=t+(a[i]-48)*pow(10,j-1);
    		m=t/26;
    		n=t%26;
    		for(i=0;i<m;i++)
    		printf("A");
    		printf("%c
    ",n+64);
    	}
    	}
    }
    第一个是最优程序,第二个是自己ac的,还望大神指教一下

  • 相关阅读:
    2014/11/25 函数
    2014/11/24 条件查询
    2、计算器
    1、winform数据库调用(基本方法)
    1、网页基础
    14、函数输出参数、递归
    13、C#简易版 推箱子游戏
    12、函数
    11、结构体、枚举
    10、特殊集合
  • 原文地址:https://www.cnblogs.com/aerer/p/9931119.html
Copyright © 2011-2022 走看看