华为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;
}
全部评论
相关推荐
昨天 19:44
上海大学 Java 牛客57020934...:现在大厂就很迷,感觉要么就是算法+agent,要么就是开发+agent。。还是招和原来一样的岗位,只是都要求赋能agent了
点赞 评论 收藏
分享
点赞 评论 收藏
分享