Ⅰ 求一個用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);
}