题解 | #小红的字符生成#

小红的字符生成

https://www.nowcoder.com/practice/f8659377ca104b1aad45dd2fb564c940

#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,从多到少来拆解。

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

全部评论

相关推荐

03-26 13:44
南华大学 Java
在看面经的花生米很野蛮:这种情况下你当然要回答,你也是吗!!!!我超喜欢他的XXXXX
点赞 评论 收藏
分享
牛客33727151号:不是哥们我以为驾照是段子呢
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客企业服务