用java写一个递归代码
时间: 2023-03-12 09:55:53 浏览: 59
我可以为你编写一个示例的Java递归代码。下面是一个简单的示例:
public class RecursiveExample {
public static void main(String[] args) {
int n = 5;
int result = factorial(n);
System.out.println("Factorial of " + n + " is " + result);
}
public static int factorial(int n) {
if (n == 0)
return 1;
else
return(n * factorial(n-1));
}
}
相关问题
用java写一个递归循环
循环和递归是两种不同的迭代方式。循环是通过迭代器在一定次数内重复执行一组指令,而递归是通过函数在一定条件下重复调用自身来实现的。下面是一个使用Java编写的递归和循环示例:
递归代码示例:
```java
public static int factorial(int num) {
if (num == 0) { // 基本条件
return 1;
} else { // 递归调用
return num * factorial(num - 1);
}
}
// 调用递归函数
System.out.println(factorial(5)); // 输出:120
```
循环代码示例:
```java
public static int factorial(int num) {
int result = 1;
for (int i = 1; i <= num; i++) { // 循环条件
result *= i;
}
return result;
}
// 调用循环函数
System.out.println(factorial(5)); // 输出:120
```
以上两个函数实现的功能相同:计算一个数的阶乘。递归方式使用了基本条件和递归调用,而循环方式使用了一个迭代器来循环执行一组指令。
用java写一个递归排序
好的,以下是一个使用 Java 编写的递归排序的示例代码:
```
public class RecursiveSort {
public static void main(String[] args) {
int[] arr = { 5, 2, 9, 3, 7, 6, 1, 8, 4 };
sort(arr, 0, arr.length - 1);
System.out.println(Arrays.toString(arr));
}
public static void sort(int[] arr, int left, int right) {
if (left < right) {
int pivotIndex = partition(arr, left, right);
sort(arr, left, pivotIndex - 1);
sort(arr, pivotIndex + 1, right);
}
}
public static int partition(int[] arr, int left, int right) {
int pivot = arr[right];
int i = left - 1;
for (int j = left; j < right; j++) {
if (arr[j] < pivot) {
i++;
int temp = arr[i];
arr[i] = arr[j];
arr[j] = temp;
}
}
int temp = arr[i + 1];
arr[i + 1] = arr[right];
arr[right] = temp;
return i + 1;
}
}
```
这个程序使用了快速排序算法,其中 `sort` 方法是递归的,它将数组分成两个部分,然后对每个部分进行排序。`partition` 方法用于将数组分成两个部分,并返回分界点的索引。