当前位置:   article > 正文

48天笔试训练错题——day09

48天笔试训练错题——day09

目录

选择题

1.

2.

3.

4.

5.

6.

7.

编程题

1. 另类加法

2. 走方格的方案数


选择题

1.

toUpperCase 不在原数据上修改,而是复制一份,在复制的数据上的修改,原数据不变

2.

类的实例和数组都是对象,一般对象都是在堆区存放的

3.

for 循环是最慢的。如下图:

clone() 是深拷贝

4.

接口只有常量和抽象方法。

5.

类方法不依赖于对象。

6.

i,j 都是 整型的包装类,所以使用 == 会比较它们的值是否相同。

而 equals 比较的是 i,j 的内容,内容相同,所以也是 true。

7.

编译会报错,因为没有帮父类进行构造。

编程题

1. 另类加法

不进位相加的结果 = 数A ^ 数B

进位 = (数A & 数B)<< 1

根据以上信息,就可以写代码了。

可以先看进位是否为零,如果不为零就异或到进位等于 0 为止。

  1. import java.util.*;
  2. public class UnusualAdd {
  3. public int addAB(int a, int b) {
  4. int sum = 0;
  5. while (b != 0) {
  6. // 两个数异或的值就是它们不进位相加的值
  7. sum = a ^ b;
  8. // 看是否需要进位,如果为 0 ,则不需要进位
  9. int carry = (a & b) << 1;
  10. a = sum;
  11. b = carry;
  12. }
  13. return sum;
  14. }
  15. }

2. 走方格的方案数

根据上面的思路,我们就可以写代码了。

代码实现:

  1. import java.util.Scanner;
  2. // 注意类名必须为 Main, 不要有任何 package xxx 信息
  3. public class Main {
  4. public static void main(String[] args) {
  5. Scanner in = new Scanner(System.in);
  6. // 注意 hasNext 和 hasNextLine 的区别
  7. while (in.hasNextInt()) { // 注意 while 处理多个 case
  8. int n = in.nextInt();
  9. int m = in.nextInt();
  10. int count = getRoadCount(n, m);
  11. System.out.println(count);
  12. }
  13. }
  14. public static int getRoadCount(int n, int m) {
  15. if (n == 1 || m == 1) {
  16. return n + m;
  17. }
  18. return getRoadCount(n, m - 1) + getRoadCount(n - 1, m);
  19. }
  20. }

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/煮酒与君饮/article/detail/864465
推荐阅读
相关标签
  

闽ICP备14008679号