#include <iostream>
#include <map>
using namespace std;

int main() {
    int n;
    map<int, char> mp;
    int i = 1;
    for (char c = 'a'; c < 'k'; ++c) {
        mp[i] = c;
        i = i * 2; 
    }

    i = 1024;
    while (cin >> n) { // 注意 while 处理多个 case
        while (n > 0) {
            while (i > n) {
                i = i / 2;
            }
            cout << mp[i];
            n = n - i;
            i = i / 2;
        }
    }
}
// 64 位输出请用 printf("%lld")

这个题其实就是计算出每个字母代表几个a,从多到少来拆解。

也可以用二进制的形式来做。