华为OD机试真题 - 找数字
public static void main(String[] args) {
Scanner in = new Scanner(System.in);
int num = in.nextInt();
System.out.println(getM(num));
}
public static int getM(int num) {
int ans = num;
LinkedList<Integer> one = new LinkedList<>();
LinkedList<Integer> zero = new LinkedList<>();
for (int i = 1; i <= num << 1; i = i << 1) {
if ((i & num) == 0) {
zero.add(i);
}
if ((i & num) == i) {
ans -= i;
one.add(i);
}
if (one.size() > 0 && (i & num) == 0) {
ans += i;
break;
}
}
for (int i = 1; i < 1 << one.size() - 1; i = i << 1) {
ans += i;
}
return ans;
}
Scanner in = new Scanner(System.in);
int num = in.nextInt();
System.out.println(getM(num));
}
public static int getM(int num) {
int ans = num;
LinkedList<Integer> one = new LinkedList<>();
LinkedList<Integer> zero = new LinkedList<>();
for (int i = 1; i <= num << 1; i = i << 1) {
if ((i & num) == 0) {
zero.add(i);
}
if ((i & num) == i) {
ans -= i;
one.add(i);
}
if (one.size() > 0 && (i & num) == 0) {
ans += i;
break;
}
}
for (int i = 1; i < 1 << one.size() - 1; i = i << 1) {
ans += i;
}
return ans;
}
全部评论
相关推荐
03-10 08:50
门头沟学院 Java
沉淀小子:可能一个月8-10K的双非普通人才是我们的常态,不是每个人都可以去那些知名的大厂拿高薪资。比较是偷走幸福的小偷,我们只需要跟过去的自己竞争。博主讲的也折射到了我最近谈恋爱也会焦虑的地方,不过女朋友说我们都是普通人,现在已经很好了。 点赞 评论 收藏
分享
查看8道真题和解析