写一个java递归的列子
时间: 2024-02-18 20:03:05 浏览: 114
好的,以下是一个使用递归来计算阶乘的 Java 代码:
```java
public class Factorial {
public static int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n-1);
}
}
public static void main(String[] args) {
int n = 5;
int result = factorial(n);
System.out.println("Factorial of " + n + " is " + result);
}
}
```
这个程序定义了一个名为 `Factorial` 的类,其中包含一个静态方法 `factorial`,用于计算给定整数 n 的阶乘。如果 n 等于 0,则直接返回 1。否则,递归调用 `factorial(n-1)` 并将其乘以 n,以此计算 n 的阶乘。在 `main` 方法中,程序调用 `factorial` 方法来计算 5 的阶乘,并将结果打印到控制台上。
相关问题
写一个java递归获取所有行政区划的例子
当然可以!以下是一个使用递归方式获取所有行政区划的 Java 示例代码:
```java
import java.util.ArrayList;
import java.util.List;
class AdministrativeDivision {
private String name;
private List<AdministrativeDivision> subdivisions;
public AdministrativeDivision(String name) {
this.name = name;
this.subdivisions = new ArrayList<>();
}
public String getName() {
return name;
}
public List<AdministrativeDivision> getSubdivisions() {
return subdivisions;
}
public void addSubdivision(AdministrativeDivision subdivision) {
subdivisions.add(subdivision);
}
}
public class AdministrativeDivisionExample {
public static void main(String[] args) {
AdministrativeDivision china = new AdministrativeDivision("中国");
AdministrativeDivision beijing = new AdministrativeDivision("北京");
AdministrativeDivision shanghai = new AdministrativeDivision("上海");
AdministrativeDivision hebei = new AdministrativeDivision("河北");
AdministrativeDivision jiangsu = new AdministrativeDivision("江苏");
china.addSubdivision(beijing);
china.addSubdivision(shanghai);
china.addSubdivision(hebei);
china.addSubdivision(jiangsu);
AdministrativeDivision haidian = new AdministrativeDivision("海淀区");
AdministrativeDivision chaoyang = new AdministrativeDivision("朝阳区");
beijing.addSubdivision(haidian);
beijing.addSubdivision(chaoyang);
AdministrativeDivision pudong = new AdministrativeDivision("浦东新区");
AdministrativeDivision minhang = new AdministrativeDivision("闵行区");
shanghai.addSubdivision(pudong);
shanghai.addSubdivision(minhang);
List<String> allAdministrativeDivisions = getAllAdministrativeDivisions(china);
for (String division : allAdministrativeDivisions) {
System.out.println(division);
}
}
public static List<String> getAllAdministrativeDivisions(AdministrativeDivision division) {
List<String> allDivisions = new ArrayList<>();
getAllSubdivisions(division, allDivisions);
return allDivisions;
}
private static void getAllSubdivisions(AdministrativeDivision division, List<String> allDivisions) {
allDivisions.add(division.getName());
for (AdministrativeDivision subdivision : division.getSubdivisions()) {
getAllSubdivisions(subdivision, allDivisions);
}
}
}
```
这个例子中,我们定义了一个 AdministrativeDivision 类来表示行政区划,每个行政区划都有一个名称和可能的子行政区划。然后,我们使用递归的方式遍历行政区划树,将所有行政区划的名称添加到一个列表中。最后,我们通过调用 `getAllAdministrativeDivisions` 方法来获取所有行政区划的列表,并在 `main` 方法中打印输出。你可以根据实际需要修改行政区划的结构和内容。希望能对你有所帮助!
java递归函数例子
以下是一个使用递归的Java示例,用于计算阶乘:
```
public class Factorial {
public static void main(String[] args) {
int n = 5;
int result = factorial(n);
System.out.println(n + "! = " + result);
}
public static int factorial(int n) {
if (n == 0) {
return 1;
} else {
return n * factorial(n - 1);
}
}
}
```
在上面的示例代码中,我们定义了一个递归函数`factorial`,用于计算一个整数的阶乘。当`n`等于0时,该函数返回1,否则它将返回`n`和`factorial(n - 1)`的乘积。
在`main`函数中,我们调用`factorial`函数来计算整数5的阶乘,然后将结果输出到控制台。
输出结果为:5! = 120
阅读全文