Ⅰ 求一个用java代码写出一个 用递归函数实现一个n的阶乘 要求n是从键盘上输入
importjava.util.Scanner;
publicclassFactorial{
publicstaticvoidmain(String[]args){
Scannersc=newScanner(System.in);
System.out.print("请输入n:");
longn=Long.parseLong(sc.nextLine());
System.out.println(getFac(n));
}
publicstaticlonggetFac(longn){
if(n==1){
return1;
}
returngetFac(n-1)*n;
}
}
Ⅱ java实现多叉树的某层遍历,求思路。一棵多叉树有M层,子节点数不定,要求打印输出第N层的节点。说
在Java中实现多叉树某层节点的遍历,通常采用递归的方法。从根节点开始,逐步向下访问直到目标层。下面是一个示例代码,展示如何打印输出第N层的节点:
定义一个类Node,表示多叉树的节点。每个节点包含一个名称name和一个子节点数组children:
class Node {
private String name; // 节点名称
private Node[] children; // 子节点
public Node(String name, Node[] children) {
this.name = name;
this.children = children;
}
// getter,setter
}
接下来定义一个方法layerX,输入参数包括一个存储结果的列表layer、当前节点p和要访问的层数x:
public void layerX(List layer, Node p, int x) {
if (p != null) {
// 如果当前节点达到访问层的节点
if (x == 1) {
layer.add(p);
}
// 继续递归访问子节点
Node[] c = p.getChildren();
if (c != null) {
for (Node n : c) {
layerX(layer, n, x - 1);
}
}
}
这个方法首先检查当前节点是否为null,如果不是null,则进入下一步。接下来判断当前节点是否为要访问的层,如果是,则将该节点添加到结果列表中。然后递归访问当前节点的所有子节点,递归层数减一。这个过程会一直持续,直到所有节点都被访问到。
通过这种方式,可以实现对多叉树的某层节点进行遍历,并将结果打印输出。这种方法具有良好的扩展性和灵活性,适用于各种复杂的多叉树结构。
需要注意的是,上述代码中的方法实现仅用于示例,实际使用时可能需要根据具体需求进行适当的调整和优化。
Ⅲ 怎么用java的递归输出杨辉三角中第n行第m个数啊
在使用Java进行递归输出杨辉三角时,可以通过编写一个方法来实现。这里有一个简单的例子:
public static int f(int a, int b) {
if (a == b || b == 1) return 1;
return f(a - 1, b - 1) + f(a - 1, b);
}
这个方法用于计算杨辉三角中特定位置的数。如果坐标是从1开始输入的话,那么第六行第四个数应该是10,而非5。杨辉三角中的数是这样排列的:
1 1 1 1 2 1 1 3 3 1 1 4 6 4 1 1 5 10 10 5 1 1 6 15 20 15 6 1 1 7 21 35 35 21 7 1
每一行的数字都可以通过上面的方法递归计算得出。例如,第六行的第四个数(从1开始计数)可以通过计算f(6,4)得到。这是因为杨辉三角的每个数字都是它上方两个数字的和。具体来说,f(a,b)表示第a行第b个数,这里的a和b都是从1开始计数的。
杨辉三角是一个很有用的数学工具,它可以用来解决组合数学中的许多问题。比如,计算组合数C(n,k)(即从n个不同元素中取出k个元素的组合数)时,可以利用杨辉三角中的值,因为C(n,k)正好等于第n+1行第k+1个数。
通过这种方法,我们可以看到杨辉三角中的数字是如何逐步生成的,每一个数字都是由其上方两个数字递归计算得出的。这种递归的方法不仅简洁,而且直观地展示了杨辉三角的生成过程。
以上就是使用Java递归输出杨辉三角中特定位置的数的一个例子。通过这种方法,不仅可以了解杨辉三角的生成机制,还可以加深对递归算法的理解。
Ⅳ java用递归编程求斐波那契数列第n项
套数学里的就是了 f(0) = 1, f(1) = 1, f(2) = 2, ...
int fib(int i){
if( i < 2 ) return 1; // 递归结束的条件
return f(i -1) + f(i-2);
}