#华为笔试#
8月26华为笔试记录:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(" ");
int n = str.length;
long[] nums = new long[n];
for(int i=0;i<n;i++){
nums[i]=Long.parseLong(str[i]);
}
//先完成第一步,把每个整数的奇偶bit为互换
for(int i=0;i<n;i++){
long temp = nums[i];
nums[i]=((temp&0xaaaaaaaa)>>>1)+((temp&0x55555555)<<1);
}//打印试一下
//System.out.println(nums[0]);
long[] low=new long[n];
long[] high = new long[n];
long[] ans = new long[n];
for(int i=0;i<n;i++){
low[i]=nums[i];
high[i]=nums[(i+1)%n];
ans[i] = (low[i]>>>2)+((high[i]&3)<<30);
}
for(int i=0;i<n;i++)
System.out.print(ans[i]+" ");
}
8月26华为笔试记录:
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String[] str = sc.nextLine().split(" ");
int n = str.length;
long[] nums = new long[n];
for(int i=0;i<n;i++){
nums[i]=Long.parseLong(str[i]);
}
//先完成第一步,把每个整数的奇偶bit为互换
for(int i=0;i<n;i++){
long temp = nums[i];
nums[i]=((temp&0xaaaaaaaa)>>>1)+((temp&0x55555555)<<1);
}//打印试一下
//System.out.println(nums[0]);
long[] low=new long[n];
long[] high = new long[n];
long[] ans = new long[n];
for(int i=0;i<n;i++){
low[i]=nums[i];
high[i]=nums[(i+1)%n];
ans[i] = (low[i]>>>2)+((high[i]&3)<<30);
}
for(int i=0;i<n;i++)
System.out.print(ans[i]+" ");
}
全部评论
相关推荐
点赞 评论 收藏
分享
11-05 14:35
重庆邮电大学 前端工程师
牛客35671670...:招个实习生最后还要横向挂人😅,还是日常实习生。这给惯的。实习生最终审核还挂就不要走这么多轮技术面。我爱说实话 点赞 评论 收藏
分享
查看10道真题和解析