當前位置:首頁 » 編程語言 » java遞歸函數例子

java遞歸函數例子

發布時間: 2022-12-22 20:33:10

『壹』 java遞歸演算法的例子。

階乘:

要求:給定一個數值,計算出它的階乘值,例如5的階乘為5*4*3*2*1

實現:

[html] view plain

<span style="font-size:12px;"> // 利用遞歸實現一個數的階乘值 private static BigDecimal getNum(BigDecimal inNum) { if (inNum.compareTo(BigDecimal.ONE) == 0) { return inNum; } return inNum.multiply(getNum(inNum.subtract(BigDecimal.ONE))); }</span>

(2)Fibonacci數列:1,1,2,3,5,8,13……

要求:找出數列中指定index位置的數值

實現:

[html] view plain

<span style="font-size:12px;"> // 利用遞歸實現了Fibonacci數列 private static int fab(int index) { if (index == 1 || index == 2) { return 1; } else { return fab(index - 1) + fab(index - 2); } }</span>

(3)漢諾塔

要求:漢諾塔挪動

實現:

[html] view plain

<span style="font-size:12px;"> <span style="white-space:pre;"> </span>private static final String DISK_B = "diskB"; <span style="white-space:pre;"> </span>private static final String DISK_C = "diskC"; <span style="white-space:pre;"> </span>private static final String DISK_A = "diskA"; <span style="white-space:pre;"> </span>static String from=DISK_A; <span style="white-space:pre;"> </span> static String to=DISK_C; <span style="white-space:pre;"> </span> static String mid=DISK_B; <span style="white-space:pre;"> </span> public static void main(String[] args) { <span style="white-space:pre;"> </span> String input=JOptionPane.showInputDialog("please input the number of the disks you want me move."); <span style="white-space:pre;"> </span> int num=Integer.parseInt(input); <span style="white-space:pre;"> </span> move(num,from,mid,to); <span style="white-space:pre;"> </span> }</span>

[html] view plain

<span style="font-size:12px;"> // 利用遞歸實現漢諾塔 private static void move(int num, String from2, String mid2, String to2) { if (num == 1) { System.out.println("move disk 1 from " + from2 + " to " + to2); } else { move(num - 1, from2, to2, mid2); System.out.println("move disk " + num + " from " + from2 + " to " + to2); move(num - 1, mid2, from2, to2); } }</span>

(4)排列組合

要求:將輸入的一個字元串中的所有元素進行排序並輸出,例如:你給出的參數是"abc",

則程序會輸出

abc

acb

bac

bca

cab

cba

實現:

[html] view plain

<span style="font-size:12px;"><span style="white-space:pre;"> </span>public static void permute(String str) { <span style="white-space:pre;"> </span> char[] strArray = str.toCharArray(); <span style="white-space:pre;"> </span> permute(strArray, 0, strArray.length - 1); <span style="white-space:pre;"> </span>}</span>

[html] view plain

<span style="font-size:12px;"> // 利用遞歸實現,將輸入的一個字元串中的所有元素進行排序並輸出 public static void permute(char[] list, int low, int high) { int i; if (low == high) { String cout = ""; for (i = 0; i <= high; i++) { cout += list[i]; } System.out.println(cout); } else { for (i = low; i <= high; i++) { char temp = list[low]; list[low] = list[i]; list[i] = temp; permute(list, low + 1, high); temp = list[low];

『貳』 遞歸Java詳解舉例說明一下

不用說那麼復雜吧,和你一樣咱也是初學者,靠目前我的理解就是程序自己調用自己!

先看簡單的吧,比較好理解,遞歸用處太多了,復雜的非常復雜,但是思路都一樣舉一反三!

publicclass遞歸
{
publicstaticvoidmain(String[]args)
{
System.out.println(" ==========遞歸演示========== ");
init(10);
}
//初始化!
privatestaticvoidinit(inta)
{
a--;//自減一次!

System.out.println(a);//列印!

if(a>0)//判斷是否大於0
init(a);//如果是就調用自己一次!
else
return;//如果等於或者小於0了就結束不在循環了!
}
}

這個輸出結果就是9,8,7,6,...一直輸出到0就結束了!

『叄』 求JAVA遞歸的應用

/*遞歸的經典例子很多,許多基礎課本都會講到「漢諾塔」,這個,就不給你了,上網搜,相當多的。
不過,樓上大哥說遞歸都可以用循環解決,可能是小弟俺所學太少,無法苟同。下面, 是用遞歸實現批量文件的復制。(當然,你千萬別以為我遞歸的是文件,只是文件名)。之所以要用遞歸,是因為,文件夾是可以一個套一個,它套了多少個,你不知道。如果不用遞歸,恐怕只能復制有限層文件夾及文件,且你的代碼相當長。
這個Copy.java實現的功能是將e盤文件夾1中的所有東西復制並按照原來文件夾的結構放入"e:\\1x"中,這與在操作系統中的復制粘貼是一樣的。只不過,通過設置數組b的大小,可以有效地控制復制的速度(尤其在復制大文件時可以看出的區別)。*/
import java.io.*;
public class Copy
{
static String s="e:\\1x";
public void x(File f)
{
for(File f1:f.listFiles())
{
File f2=new File(s+(f1.getPath().replace("e:\\1","")));
if(f1.isDirectory())
{
f2.mkdirs();
x(f1);
}
else
{
try
{
FileInputStream fis=new FileInputStream(f1);
FileOutputStream fos=new FileOutputStream(f2);
byte b[]=new byte[1000];
while(fis.available()>0)
{
fis.read(b);
fos.write(b);
}
fos.flush();
fis.close();
fos.close();
}
catch(IOException e)
{
System.out.println("Error");
}
}
}
}
public static void main(String args[])
{
File f=new File("e:\\1");
new Copy().x(f);
}
}

『肆』 什麼是遞歸,用Java怎麼實現

遞歸是函數調用自身,從而形成循環重復執行的現象。簡單的示例名稱為a的函數調用自身,a(){ a() } 。常見的用法比如處理樹形結構數據,商品多級分類、多層級部門機構等

『伍』 java方法遞歸調用

python">1.當n=1時,返回1
2.當n>1時,返回n+(n-1)

最簡單的了,還有個有名的數列遞歸叫做「斐波那契」數列遞歸

『陸』 java遞歸演算法的例子

簡單理解一下:
遞歸就是調用上一步的結果,來產生下一步的結果,一般上一步的結果是由函數得到,所以下一步直接調用函數,參數不一樣而已:
階乘演算法:
public int JieCheng(int n){
return n*JieCheng(n-1);
}
當然還必要一些條件判斷嗎,就是終止遞歸調用的,jiecheng為n=1 時 就return 1;

『柒』 遞歸範例 java

/**
* 二分查找
* @author tenglian
*
*/
class BinaryFind{

public void find(int leftIndex, int rightIndex, int val, int arr[]){
int midIndex = (leftIndex + rightIndex)/2;
int midVal = arr[midIndex];
if(rightIndex >= leftIndex){
if(midVal > val){
find(leftIndex, midIndex - 1, val, arr);
} else if(midVal < val){
find(midIndex + 1, rightIndex, val, arr);
} else if(midVal == val){
System.out.println(midIndex);
}
} else {
System.out.println("NotDataFound");
}
}
}
上面這個例子是個二分查找,典型的 用到 遞歸的例子 自己運行下看看,相信你能理解 不難

『捌』 java 遞歸 定義是什麼請舉出個簡單的例子,謝謝

一個類的定義方法:
public class Node
{
int value;
Node next;
以下有一些set,get方法及構造方法
}
一個類的成員是當前類

一個方法:
public int f(int n)
{
if(n<=1)
return 1;
else
return n+f(n-1);
}
以上是求1-n的累加
該方法調用了該方法自己

『玖』 Java中的遞歸如何使用最好給出詳細的例題

程序調用自身的編程技巧稱為遞歸( recursion)。 一個過程或函數在其定義或說明中有直接或間接調用自身的一種方法,它通常把一個大型復雜的問題層層轉化為一個與原問題相似的規模較小的問題來求解,遞歸策略只需少量的程序就可描述出解題過程所需要的多次重復計算,大大地減少了程序的代碼量。遞歸的能力在於用有限的語句來定義對象的無限集合。一般來說,遞歸需要有邊界條件、遞歸前進段和遞歸返回段。當邊界條件不滿足時,遞歸前進;當邊界條件滿足時,遞歸返回。 注意: (1) 遞歸就是在過程或函數里調用自身; (2) 在使用遞歸策略時,必須有一個明確的遞歸結束條件,稱為遞歸出口。

上面是遞歸的定義,我現在給你一個JAVA最簡單的遞歸的我寫的例子,你可以對照著看:

public class Test { public static void main(String[] args) { output(1); } private static void output(int n) { // TODO Auto-generated method stub System.out.println(n); if(n<100){ n++; output(n); } } }

『拾』 用java遞歸方法實現

publicintfun(intn){
if(n==0||n==1)return1;
returnn*fun(n-1);
}

熱點內容
電腦我的世界伺服器游戲幣 發布:2025-05-16 05:27:25 瀏覽:487
索尼手機為什麼不能用安卓10 發布:2025-05-16 05:18:46 瀏覽:784
蔚來es6選擇哪些配置實用 發布:2025-05-16 05:18:05 瀏覽:130
小米如何掃碼wifi密碼 發布:2025-05-16 05:13:38 瀏覽:807
樓層密碼是什麼意思 發布:2025-05-16 05:13:37 瀏覽:13
創建文件夾失敗 發布:2025-05-16 05:12:59 瀏覽:396
電腦上如何查詢自己的配置 發布:2025-05-16 05:06:36 瀏覽:105
sql中去重 發布:2025-05-16 04:55:06 瀏覽:893
dwr上傳圖片 發布:2025-05-16 04:49:46 瀏覽:122
base64加密的圖片 發布:2025-05-16 04:35:46 瀏覽:356