计算机程序设计基础随堂测验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;
}
}