java實(shí)現(xiàn)一個(gè)遞歸代碼,java遞歸算法代碼

用java遞歸方法實(shí)現(xiàn)

1、遞歸做為一種算法在程序設(shè)計(jì)語(yǔ)言中廣泛使用,是指函數(shù)/過(guò)程/子程序在運(yùn)行過(guò)程中直接或間接調(diào)用自身而產(chǎn)生的重入現(xiàn)象。

創(chuàng)新互聯(lián)公司是專業(yè)的大化網(wǎng)站建設(shè)公司,大化接單;提供成都做網(wǎng)站、網(wǎng)站設(shè)計(jì),網(wǎng)頁(yè)設(shè)計(jì),網(wǎng)站設(shè)計(jì),建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行大化網(wǎng)站開(kāi)發(fā)網(wǎng)頁(yè)制作和功能擴(kuò)展;專業(yè)做搜索引擎喜愛(ài)的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊(duì),希望更多企業(yè)前來(lái)合作!

2、遞歸算法一般用于解決三類問(wèn)題:

1)數(shù)據(jù)的定義是按遞歸定義的。(Fibonacci(斐波那契)的函數(shù))

2)問(wèn)題解法按遞歸算法實(shí)現(xiàn)。(回溯)

3)數(shù)據(jù)的結(jié)構(gòu)形式是按遞歸定義的。(樹(shù)的遍歷,圖的搜索)

java遞歸算法的例子。

階乘:

要求:給定一個(gè)數(shù)值,計(jì)算出它的階乘值,例如5的階乘為5*4*3*2*1

實(shí)現(xiàn):

[html] view plaincopy

span style="font-size:12px;" ?// 利用遞歸實(shí)現(xiàn)一個(gè)數(shù)的階乘值 ? ? ?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數(shù)列:1,1,2,3,5,8,13……

要求:找出數(shù)列中指定index位置的數(shù)值

實(shí)現(xiàn):

[html] view plaincopy

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

(3)漢諾塔

要求:漢諾塔挪動(dòng)

實(shí)現(xiàn):

[html] view plaincopy

span style="font-size:12px;" ?span style="white-space:pre;" /spanprivate static final String DISK_B = "diskB"; ? ?span style="white-space:pre;" ? /spanprivate static final String DISK_C = "diskC"; ? ?span style="white-space:pre;" ? /spanprivate static final String DISK_A = "diskA"; ? ?span style="white-space:pre;" ? /spanstatic 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 plaincopy

span style="font-size:12px;" ?// 利用遞歸實(shí)現(xiàn)漢諾塔 ? ? ?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)排列組合

要求:將輸入的一個(gè)字符串中的所有元素進(jìn)行排序并輸出,例如:你給出的參數(shù)是"abc",

則程序會(huì)輸出

abc

acb

bac

bca

cab

cba

實(shí)現(xiàn):

[html] view plaincopy

span style="font-size:12px;"span style="white-space:pre;" ? /spanpublic 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 plaincopy

span style="font-size:12px;" ?// 利用遞歸實(shí)現(xiàn),將輸入的一個(gè)字符串中的所有元素進(jìn)行排序并輸出 ? ? ?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的遞歸代碼

下面遞歸寫(xiě)了一段遞歸累加到100,每加20個(gè)就換行輸出。

package?zhidao;

public?class?Digui?{

public?static?int?add(int?num){

int?sum?=?0;

StringBuffer?sb?=?new?StringBuffer();

if?(num?=?0)?{

return?0;

}else{

if?(num?==?1)?{

sum?=?sum+1;

}else?{

sum?=?add(num-1)+num;

}

if?(num?%?20?==?0)?{

System.out.println("[index?=?"+num+"?sum?=?"+sum+"]");

}else?{

System.out.print("[index?=?"+num+"?sum?=?"+sum+"],");

}

}

return?sum;

}

public?static?void?main(String[]?args)?{

add(100);

}

}

新聞標(biāo)題:java實(shí)現(xiàn)一個(gè)遞歸代碼,java遞歸算法代碼
網(wǎng)站地址:http://m.kartarina.com/article24/dseiice.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站維護(hù)做網(wǎng)站搜索引擎優(yōu)化響應(yīng)式網(wǎng)站定制開(kāi)發(fā)網(wǎng)站設(shè)計(jì)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

外貿(mào)網(wǎng)站建設(shè)
主站蜘蛛池模板: 亚洲中文字幕无码专区| 无码精品人妻一区二区三区免费看 | 亚洲中文字幕无码mv| 亚洲av无码不卡一区二区三区 | 精品无码无人网站免费视频| 无码丰满熟妇浪潮一区二区AV| 国产av无码专区亚洲国产精品| 久久久久无码精品国产不卡| 中文字幕人妻无码系列第三区| 亚洲6080yy久久无码产自国产| 国内精品人妻无码久久久影院导航| 日韩精品无码中文字幕一区二区| 无翼乌工口肉肉无遮挡无码18| 无码国产精品一区二区免费16| 国产亚洲精品无码拍拍拍色欲| 无码中文人妻在线一区| 无码少妇一区二区| 免费看无码特级毛片| 国产成人无码免费视频97| 亚洲日韩国产AV无码无码精品| 亚洲AV无码国产在丝袜线观看| 人妻中文无码久热丝袜| 无码人妻AⅤ一区二区三区水密桃| 亚洲av无码日韩av无码网站冲 | 人妻在线无码一区二区三区| 人妻丰满熟妇AV无码区乱| 亚洲av无码成人黄网站在线观看| 亚洲精品无码专区久久同性男| 精品久久久久久无码人妻| 国产成人无码A区精油按摩| 亚洲aⅴ无码专区在线观看| 亚洲av无码日韩av无码网站冲| 久久久久久亚洲精品无码| 东京热av人妻无码| 成年男人裸j照无遮挡无码| 日韩毛片无码永久免费看| 精品无码久久久久久久久| 无码av大香线蕉伊人久久| 人妻无码aⅴ不卡中文字幕| 日韩久久无码免费毛片软件| 亚洲精品人成无码中文毛片|