zoukankan      html  css  js  c++  java
  • 蓝桥杯训练 历届试题 Excel地址

    问题描述

      Excel单元格的地址表示很有趣,它使用字母来表示列号。
      比如,
      A表示第1列,
      B表示第2列,
      Z表示第26列,
      AA表示第27列,
      AB表示第28列,
      BA表示第53列,
      ....


      当然Excel的最大列号是有限度的,所以转换起来不难。
      如果我们想把这种表示法一般化,可以把很大的数字转换为很长的字母序列呢?


      本题目即是要求对输入的数字, 输出其对应的Excel地址表示方式。

    样例输入

    26

    样例输出

    Z

    样例输入

    2054

    样例输出

    BZZ

    数据规模和约定

      我们约定,输入的整数范围[1,2147483647]


      峰值内存消耗(含虚拟机) < 256M
      CPU消耗 < 1000ms




      请严格按要求输出,不要画蛇添足地打印类似:“请您输入...” 的多余内容。


      注意:
      main函数需要返回0;
      只使用ANSI C/ANSI C++ 标准;
      不要调用依赖于编译环境或操作系统的特殊函数。
      所有依赖的函数必须明确地在源文件中 #include <xxx>
      不能通过工程设置而省略常用头文件。


      提交程序时,注意选择所期望的语言类型和编译器类型。


      ------------------------------


      笨笨有话说:
      这有点像进制关系,又不完全是。好像末2位是以1当26,末3位是以1当26*26


      歪歪有话说:
      要是从字母序列转数字还好点,倒过来有点麻烦,不过计算机跑得快啊。

    #include<iostream>
    #include<stack>
    #include<cstring>
    #include<string>
    using namespace std;
    
    int main()
    {
    	stack<char>s;
    	int n,m,j,k,i,T;
    	cin>>n;
    	while (n)
    	{
    		n--;
    		s.push((n%26)+'A');
    		n/=26;
    	}
    	while (!s.empty())
    	{
    		cout<<s.top();
    		s.pop();
    	}
    	cout<<endl;
    	
    	return 0;
    }
  • 相关阅读:
    go通道小案例
    go执行cmd命令并获取输出内容
    vue快速生成二维码
    vue.js数字简化 万转化k显示
    uniapp实现小程序获取用户信息
    实现图片预加载功能
    C# MD5加密字符串方法
    一个封装的 HttpClientHelper
    简易通过队列存储并异步打日志实现
    变量
  • 原文地址:https://www.cnblogs.com/Romantic-Chopin/p/12451100.html
Copyright © 2011-2022 走看看