目录
一、编程题
1.另类加法
链接:另类加法_牛客题霸_牛客网 (nowcoder.com)
🔎做题思路:位运算符
结论:
import java.util.*;
public class UnusualAdd {
public int addAB(int A, int B) {
if (B == 0) {
return A;
}
int sum = 0;
int carray = 0;
while (B != 0) {
sum = A ^ B;
carray = (A & B) << 1;
A = sum;
B = carray;
}
return A;
}
}
2.走方格的方案数
链接:走方格的方案数_牛客题霸_牛客网 (nowcoder.com)
🔎做题思路:
第一种情况:
第二种情况:
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner scanner = new Scanner(System.in);
while (scanner.hasNext()) {
int n = scanner.nextInt();
int m = scanner.nextInt();
System.out.println(med(n, m));
}
}
public static int med(int n, int m) {
//m == 1 或者 n == 1;
if ((n == 1 && m >= 1) || (m == 1 && n >= 1)) {
return m + n;
}
//n > 1, m > 1
return med(n - 1, m) + med(n, m - 1);
}
}
二、选择题
1.JAVA语言的下面几种数组复制方法中,哪个效率最高?
A.for循环逐一复制
B.System.arraycopy
C.Arrays.copyOf
D.使用clone方法
2.对文件名为Test.java的java代码描述正确的是()
class Person {
String name = "No name";
public Person(String nm) {
name = nm;
}
}
class Employee extends Person {
String empID = "0000";
public Employee(String id) {
empID = id;
}
}
public class Test {
public static void main(String args[]) {
Employee e = new Employee("123");
System.out.println(e.empID);
}
}
A.输出:0000
B.输出:123
C.编译报错
D.输出:No name
3.在jdk1.5之后,下列 java 程序输出结果为______。
int i=0;
Integer j = new Integer(0);
System.out.println(i==j);
System.out.println(j.equals(i));
A.true,false
B.true,true
C.false,true
D.false,false
E.对于不同的环境结果不同
F.程序无法执行