1.奇偶位交换
题目描述
请编写程序交换一个数的二进制的奇数位和偶数位。(使用越少的指令越好)
给定一个int x,请返回交换后的数int。
测试样例:
10
返回:5
import java.util.*;
public class Exchange {
public int exchangeOddEven(int x) {
int a=x&0x55555555;
int b=x&0xaaaaaaaa;
return (a<<1)|(b>>>1);
}
}
2.判断直线相交
题目描述
给定直角坐标系上的两条直线,确定这两条直线会不会相交。
线段以斜率和截距的形式给出,即double s1,double s2,double y1,double y2,分别代表直线1和2的斜率(即s1,s2)和截距(即y1,y2),请返回一个bool,代表给定的两条直线是否相交。这里两直线重合也认为相交。
测试样例:
3.14,3.14,1,2
返回:false
import java.util.*;
public class CrossLine {
public boolean checkCrossLine(double s1, double s2, double y1, double y2) {
return s1!=s2||y1==y2;
}
}