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];
    }

     

  • 相关阅读:
    新的思考方式
    我在干售后!
    设计制造嵌入式系统
    镶嵌在系统中的系统
    苏黄永郦的第六周读书报告
    苏黄永郦的第五周读书报告
    苏黄永郦的第四周读书报告
    苏黄永郦的第三周读书报告
    1051 最大子矩阵和
    1065 最小正子段和
  • 原文地址:https://www.cnblogs.com/mohari/p/12865295.html
Copyright © 2011-2022 走看看