计算机程序设计基础随堂测验2 B卷

Problem 1

编写一个程序,其中包含一个方法,该方法接受一个正整数参数 𝑛。程序应打印一个三角形图案,其中每一行 𝑖(从 1 到 𝑛)包含 𝑖 个偶数,从 2 开始。例如,当参数 𝑛 为 4 时,输出应如下所示: 2 4 6 8 10 12 14 16 18 20 在 main 函数中测试该方法。

***Solution ***

public class Quiz2BProblem1 {
	public static void main(String[] args) {
		printTriangleMatrix(5);
	}

	static void printTriangleMatrix(int n) {
		int evenIndex = 1;
		for (int i = 1; i <= n; i++) {
			for (int j = 1; j <= i; j++) {
				System.out.print(evenIndex * 2);
				evenIndex++;
				if (j != i) {
					System.out.print("\t");
				} else {
					System.out.println();
				}
			}
		}
	}
}

Problem 2

编程求e^x的n阶近似。

public class Quiz2BProblem2 {
	public static void main(String[] args) {
		double a = approximateEToX(0.5, 10);
		System.out.println(a);
	}
	// 各项加和近似求e的x次方
	static double approximateEToX(double x, int n) {
		double solution = 0.;
		for (int i = 0; i <= n; i++) {
			solution += pow(x, i) / factorial(i);
		}
		return solution;
	}
	
	// 计算x的k次方(分子)
	static double pow(double x, int k) {
		if (k < 0) {
			System.out.println("pow: wrong power number. n: " + k);
			return 0;
		}
		double solution = 1.;
		for (int i = 1; i <= k; i++) {
			solution *= x;
		}
		return solution;
	}
	// 计算k的阶乘(分母)
	static double factorial(int k) {
		if (k < 0) {
			System.out.println("factorial: wrong number. n: " + k);
			return Integer.MAX_VALUE;
		}
		int solution = 1;
		for (int i = 1; i <= k; i++) {
			solution *= i;
		}
		return solution;

	}
}