zoukankan      html  css  js  c++  java
  • 试题 历届试题 Excel地址(模拟,进制转换)

    问题描述
      Excel单元格的地址表示很有趣,它使用字母来表示列号。
      比如,
      A表示第1列,
      B表示第2列,
      Z表示第26列,
      AA表示第27列,
      AB表示第28列,
      BA表示第53列,
      ....
    样例输入
    26
    样例输出
    Z
    样例输入
    2054
    样例输出
    BZZ
    数据规模和约定
      我们约定,输入的整数范围[1,2147483647]
     思路
    这题之前省赛见过,是填空题,上手还是有点麻烦的,给绕了,基础还是要打好。
    关键点在于 它是26进制,但是26的时候没有进位,补0,而是用’Z'代替,所以当取余数为0时,要把值改为26。
    每次我们要减掉前一个取余的数,再除以26.  比如AZ这个数是52,Z代表26,(52-26)/26=1='A';
    其余就是进制转换的模板,最后反向输出即可
    满分代码如下:
    #include<bits/stdc++.h>
    using namespace std;
    int main()
    {
        long long int ans;
        string str;
        cin>>ans;
        int tot;
        while(ans!=0){
            tot=ans%26;
            if(ans%26==0){tot=26;}
            str+=tot-1+'A';
            ans=(ans-tot)/26;
        }
        for(int i=str.size()-1;i>=0;i--)
            cout<<str[i];
    }

     

  • 相关阅读:
    哈工大《机器学习》最小二乘法曲线拟合——实验一
    最小二乘法曲线拟合以及matlab实现
    Dubbo简介
    Redis持久化策略
    Linux安装Redis
    RabbitMQ-Demo
    RabbitMQ安装相关
    SpringCloud-Alibaba-Nacos-Demo
    Nacos_启动失败原因
    IDEA中properties中文显示乱码
  • 原文地址:https://www.cnblogs.com/mohari/p/12865295.html
Copyright © 2011-2022 走看看