编写一个Java程序,实现以下功能:判断一个给定的年份是否为闰年;计算并输出该年份的阶乘;统计并输出该年份内的素数数量;生成并按升序打印一个杨辉三角形。
时间: 2024-12-09 17:31:42 浏览: 10
在学习Java编程的过程中,实现这样的综合练习题不仅可以帮助你巩固基础知识,还能提升解决复杂问题的能力。为了帮助你更好地完成这个任务,可以参考《Java编程挑战:100题详解,涵盖递归、排序、素数等》一书中的相关题目和解答。下面是如何实现这一综合编程题的详细步骤:
参考资源链接:[Java编程挑战:100题详解,涵盖递归、排序、素数等](https://wenku.csdn.net/doc/5iceipxa77?spm=1055.2569.3001.10343)
1. 判断闰年:
```java
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
```
2. 计算阶乘:
```java
public static long factorial(int n) {
return n == 1 ? 1 : n * factorial(n - 1);
}
```
3. 统计素数数量:
```java
public static int countPrimes(int year) {
int count = 0;
for (int i = 2; i < year; i++) {
if (isPrime(i)) count++;
}
return count;
}
private static boolean isPrime(int number) {
for (int i = 2; i <= Math.sqrt(number); i++) {
if (number % i == 0) return false;
}
return true;
}
```
4. 打印杨辉三角形:
```java
public static void printPascalTriangle(int rows) {
int[][] triangle = new int[rows][];
for (int i = 0; i < rows; i++) {
triangle[i] = new int[i + 1];
triangle[i][0] = 1;
triangle[i][i] = 1;
for (int j = 1; j < i; j++) {
triangle[i][j] = triangle[i - 1][j - 1] + triangle[i - 1][j];
}
}
for (int i = 0; i < rows; i++) {
for (int j = 0; j <= i; j++) {
System.out.print(triangle[i][j] +
参考资源链接:[Java编程挑战:100题详解,涵盖递归、排序、素数等](https://wenku.csdn.net/doc/5iceipxa77?spm=1055.2569.3001.10343)
阅读全文