如何用Java编写一个程序,来判断一个给定的年份是否为闰年,同时输出该年份的阶乘、计算它包含的素数数量,以及打印出一个按照升序排序的杨辉三角形?
时间: 2024-12-09 18:31:42 浏览: 9
要解决这个问题,首先需要掌握Java中的条件判断、循环、数组和递归等编程技巧。以下是一个综合性的示例代码,它将完成你的所有要求:
参考资源链接:[Java编程挑战:100题详解,涵盖递归、排序、素数等](https://wenku.csdn.net/doc/5iceipxa77?spm=1055.2569.3001.10343)
首先,判断闰年的函数可以这样编写:
```java
public static boolean isLeapYear(int year) {
return (year % 4 == 0 && year % 100 != 0) || (year % 400 == 0);
}
```
接下来,计算阶乘的递归函数:
```java
public static long factorial(int n) {
if (n <= 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
```
为了计算一个年份内包含的素数数量,需要一个判断素数的函数:
```java
public static boolean isPrime(int num) {
if (num <= 1) return false;
for (int i = 2; i <= Math.sqrt(num); i++) {
if (num % i == 0) {
return false;
}
}
return true;
}
```
最后,打印杨辉三角形并进行排序,这涉及到二维数组的使用和行内排序:
```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];
}
// 对行进行排序
Arrays.sort(triangle[i]);
}
// 打印杨辉三角形
for (int i = 0; i < triangle.length; 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)
阅读全文