L1-050 倒数第N个字符串 (15 分)
题目链接:https://pintia.cn/problem-sets/994805046380707840/problems/994805080346181632
分析:我们可以通过给定的倒数第几个数来求该数是顺数第几个数(因为这样比较容易思考一点?)然后类似于求一个整数的每一位数字,这里我们所用的进制是26进制,然后再加上a,因为是求字符。(好难想,我是参考别人的hh)
题解:
#include#include using namespace std; int main() { int L, N; cin >> L >> N; char c[6]; long long m = pow(26,L) - N; for(int i = L - 1; i >= 0; i--) // 要逆序算,因为个位先算出来,但是打印的时候是最高位先打印出来 { c[i] = m %26 + 'a'; m /= 26; } cout << c << endl; return 0; }