2017年蓝桥杯省赛 1.Excel地址 有坑点 知识点:进制

90 阅读1分钟

题目:1.Excel地址 - 蓝桥云课 (lanqiao.cn)

解析:2017-C-C题7excel地址_哔哩哔哩_bilibili

假设x是52, 用52/26:

image.png

那么就会有余数0,但是因为这是26进制,只有1~26,没有0

因此我们不可以让x能被整除,即让它余一个26,如下所示:

image.png

#include<iostream>
#include<cstring>
#include<vector>
using namespace std;
int main(){
    int n;
    cin>>n;
    vector<char> v;
    while(n>0){
        n--;
        v.push_back(n%26+'A');
        n/=26;
    }
    for(int i=v.size()-1;i>=0;i--) cout<<v[i];
    return 0;
}

注意不可以写为 v.push_back(n%26-1+'A')

因为假设n是26,26%26=0,0-1=-1,-1+'A'是?