0
点赞
收藏
分享

微信扫一扫

2023五一数学建模竞赛选题人数公布

西特张 2023-05-05 阅读 37
算法java

目录

一、编程题

1.另类加法

 2.走方格的方案数

二、选择题


一、编程题

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.程序无法执行

举报

相关推荐

0 条评论