赞
踩
目录
toUpperCase 不在原数据上修改,而是复制一份,在复制的数据上的修改,原数据不变
类的实例和数组都是对象,一般对象都是在堆区存放的
for 循环是最慢的。如下图:
clone() 是深拷贝
接口只有常量和抽象方法。
类方法不依赖于对象。
i,j 都是 整型的包装类,所以使用 == 会比较它们的值是否相同。
而 equals 比较的是 i,j 的内容,内容相同,所以也是 true。
编译会报错,因为没有帮父类进行构造。
不进位相加的结果 = 数A ^ 数B
进位 = (数A & 数B)<< 1
根据以上信息,就可以写代码了。
可以先看进位是否为零,如果不为零就异或到进位等于 0 为止。
- import java.util.*;
-
- public class UnusualAdd {
- public int addAB(int a, int b) {
- int sum = 0;
- while (b != 0) {
- // 两个数异或的值就是它们不进位相加的值
- sum = a ^ b;
- // 看是否需要进位,如果为 0 ,则不需要进位
- int carry = (a & b) << 1;
- a = sum;
- b = carry;
- }
- return sum;
- }
- }

根据上面的思路,我们就可以写代码了。
代码实现:
- import java.util.Scanner;
-
- // 注意类名必须为 Main, 不要有任何 package xxx 信息
- public class Main {
- public static void main(String[] args) {
- Scanner in = new Scanner(System.in);
- // 注意 hasNext 和 hasNextLine 的区别
- while (in.hasNextInt()) { // 注意 while 处理多个 case
- int n = in.nextInt();
- int m = in.nextInt();
- int count = getRoadCount(n, m);
- System.out.println(count);
- }
- }
-
- public static int getRoadCount(int n, int m) {
- if (n == 1 || m == 1) {
- return n + m;
- }
- return getRoadCount(n, m - 1) + getRoadCount(n - 1, m);
- }
- }

Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。