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

小红的字符生成

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

import java.util.*;

public class Main {
    static final int N = (int) 1e6 + 5;
    static final long mod = (long) 1e9 + 7;
    static final int inf = 0x3f3f3f3f;

    public static String find(int n) {
        StringBuilder ans = new StringBuilder();

        while (n > 0) {
            ans.append((n & 1) == 1 ? "1" : "0");
            n >>= 1;
        }

        return ans.length() == 0 ? "0" : ans.toString();
    }

    public static void solve() {
        Scanner scanner = new Scanner(System.in);
        int n = scanner.nextInt();

        Map<Integer, Character> ans = new HashMap<>();

        for (int i = 0; i < 26; i++) {
            ans.put((int) Math.pow(2, i), (char) ('a' + i));
        }

        String a = find(n); // 二进制

        for (int i = 0; i < a.length(); i++) {
            if (a.charAt(i) == '1') {
                System.out.print(ans.get((int) Math.pow(2, i)));
            }
        }
    }

    public static void main(String[] args) {
        int t = 1;
        // t = scanner.nextInt();

        while (t-- > 0) {
            solve();
        }
    }
}

全部评论

相关推荐

点赞 评论 收藏
分享
用微笑面对困难:不是你千万别小看这家公司,他们的预估市值成倍上涨,三次在报告看见这个公司了,总之如果是给股权的话可以试试,未来没准真能发家致富哈哈哈哈
点赞 评论 收藏
分享
评论
点赞
收藏
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务