华宇信息笔试

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
package ren.laughing.test.huayu;
/**
 * 测试final方法
 * 运行成功,返回为子类方法结果。
 * 原因:final修饰的方法,可以被继承,不可被重写。
 * 这里父类方法声明为private,私有,不可被子类访问。因此子类方法和父类方法无关。
 * (假如父类方法声明为public,编译错误,因为final方法不可被重写!)
 * @author Laughing_Lz
 * @time 2016年9月20日
 */
class TestFinalFather {
	private final void finalFunction(int n) {
		System.out.println("打印Father方法");
	}
}
 
public class TestFinal extends TestFinalFather {
	public final void finalFunction(int n) {
		System.out.println("打印当前类方法");
	}
 
	public static void main(String[] args) {
		new TestFinal().finalFunction(1);
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
package ren.laughing.test.huayu;
 
import java.util.Scanner;
 
/**
 * 题目为计算从某点垂直松开小球,小球弹跳落地后经过的总距离和下次弹跳可达到的高度,假设每次弹跳返回上次高度的1/2
 * 
 * @author Laughing_Lz
 * @time 2016年9月20日
 */
public class Bounce {
	/**
	 * 
	 * @param height
	 *            最高点
	 * @param n
	 *            弹跳次数
	 */
	public void GetBounce(double height, int n) {
		double sum = height;
		for (int i = 1; i < n; i++) {
			height = height / 2;
			sum += height*2;
		}
		System.out.println("弹跳高度为:" + height / 2);
		System.out.println("弹跳总距离为" + sum);
	}
 
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		while (input.hasNextInt()) {
			int n = input.nextInt();
			new Bounce().GetBounce(10, n);
		}
		input.close();
	}
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
package ren.laughing.test.huayu;
 
import java.util.Scanner;
 
/**
 * 打印某个有规律的图形
 * 
 * @author Laughing_Lz
 * @time 2016年9月20日
 */
public class PrintGraph {
	/**
	 * 
	 * @param n
	 *            层数(>=2)
	 * @throws Exception
	 *             n起始值错误
	 */
	public void GetGraph(int n) throws Exception {
		if (n < 2) {
			throw new Exception("n应大于1!");
		}
		int a = n - 2;
		/********* 打印第一行 **********/
		for (int i = 0; i < a; i++) {
			System.out.print(" ");
		}
		System.out.print("/\\");// 对\转义,使用\\表示一个\
		for (int i = 0; i < a; i++) {
			System.out.print(" ");
		}
		System.out.println();// 换行
		/********* 打印中间图形 **********/
		int b = 2;
		while (b < n) {
			int c = n - b - 1;
			int d = b - 1;
			for (int i = 0; i < c; i++) {// 先打印空格
				System.out.print(" ");
			}
			System.out.print("/");// 打印/
			for (int i = 0; i < d; i++) {// 再打印*
				System.out.print("**");
			}
			System.out.print("\\");// 打印\
			for (int i = 0; i < c; i++) {// 再打印空格
				System.out.print(" ");
			}
			System.out.println();// 换行
			b++;
		}
		/********* 打印最后一行 ***********/
		int c = (n - 1) * 2;
		for (int i = 0; i < c; i++) {
			System.out.print("+");
		}
	}
 
	public static void main(String[] args) {
		Scanner input = new Scanner(System.in);
		while (input.hasNextInt()) {
			try {
				new PrintGraph().GetGraph(input.nextInt());
			} catch (Exception e) {
				e.printStackTrace();
			}
		}
		input.close();
	}
}

发表评论

电子邮件地址不会被公开。 必填项已用*标注