题解 | 小红的字符生成
import java.util.Scanner;
// 注意类名必须为 Main, 不要有任何 package xxx 信息
public class Main {
public static void main(String[] args) {
int x = Integer.parseInt(new Scanner(System.in).nextLine().trim());
StringBuffer sb = new StringBuffer();
//设定x<1000,不会出现z
String s = Integer.toBinaryString(x);
// System.out.println(s);
for(int i=s.length()-1;i>=0;i--){
// System.out.println(s.substring(i,i+1));
if(s.substring(i,i+1).equals("0")) continue;
sb.append(Character.toString((char)(s.length()-i-1+'a')));
}
System.out.println(sb.toString());
}
}
思路:如果用if-else做太复杂了,看透了本质发现其实就是贪心+二进制,贪心指的是尽量找大的字母,二进制指的是将x转化为它的二进制,这样比较方便找大的字母
处理:难点在于知不知道字母和数字的运算,java要先把数字+字母转化为char,再用Character的toString方法化为String,拼到答案里面去
莉莉丝游戏公司福利 760人发布