真实的国产乱ⅩXXX66竹夫人,五月香六月婷婷激情综合,亚洲日本VA一区二区三区,亚洲精品一区二区三区麻豆

成都創(chuàng)新互聯(lián)網(wǎng)站制作重慶分公司

java語言遞歸代碼 java遞歸簡單例子

一段JAVA的遞歸代碼

下面遞歸寫了一段遞歸累加到100,每加20個就換行輸出。

南譙網(wǎng)站建設(shè)公司創(chuàng)新互聯(lián)公司,南譙網(wǎng)站設(shè)計制作,有大型網(wǎng)站制作公司豐富經(jīng)驗。已為南譙上1000+提供企業(yè)網(wǎng)站建設(shè)服務(wù)。企業(yè)網(wǎng)站搭建\成都外貿(mào)網(wǎng)站制作要多少錢,請找那個售后服務(wù)好的南譙做網(wǎng)站的公司定做!

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);

}

}

java語言用遞歸輸出Fibonacci數(shù)列:1 1 2 3 5 8 13 21前10個數(shù)的代碼?

public class Fibonacci \x0d\x0a{\x0d\x0apublic static void main(String[] args) \x0d\x0a{\x0d\x0a //初始化變量\x0d\x0a int n0 = 1, n1 = 1, n2;\x0d\x0a \x0d\x0a System.out.print(n0 + " " + n1 + " ");\x0d\x0a \x0d\x0a //引入for循環(huán)依次執(zhí)行三個表達(dá)式,限定i的取值范圍為

回答于?2022-11-16

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

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

2、遞歸算法一般用于解決三類問題:

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

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

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

java遞歸算法

1.漢諾塔問題

import javax.swing.JOptionPane;

public class Hanoi {

private static final String DISK_B = "diskB";

private static final String DISK_C = "diskC";

private static final String DISK_A = "diskA";

static String from=DISK_A;

static String to=DISK_C;

static String mid=DISK_B;

public static void main(String[] args) {

String input=JOptionPane.showInputDialog("please input the number of the disks you want me move.");

int num=Integer.parseInt(input);

move(num,from,mid,to);

}

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);

}

}

}

2. 這是一個排列的例子,它所做的工作是將輸入的一個字符串中的所有元素進(jìn)行排序并輸出,例如:你給出的參數(shù)是"abc" 則程序會輸出:

abc

acb

bac

bca

cab

cba

(1)算法的出口在于:low=high也就是現(xiàn)在給出的排列元素只有一個時。

(2)算法的逼近過程:先確定排列的第一位元素,也就是循環(huán)中i所代表的元素,

然后low+1開始減少排列元素,如此下去,直到low=high

public static void permute(String str) {

char[] strArray = str.toCharArray();

permute(strArray, 0, strArray.length - 1);

}

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];

list[low] = list[i];

list[i] = temp;

}

}

}

3。這是一個組合的例子,與上述的例子相似,只是它所做的工作是,輸出所給字符串中制定數(shù)目的元素的組合種類

(1)程序出口在于n=1,此時只要輸出目標(biāo)數(shù)組的所有元素即可

(2)逼近過程,當(dāng)n1 的時候,我們先取第一個元素放入目標(biāo)數(shù)組中,然后n-1,如此下去,最后出來。

import javax.swing.JOptionPane;

public class Combination {

/**

* @param args

*/

public static void main(String[] args) {

String input = JOptionPane.showInputDialog("please input your String: ");

String numString = JOptionPane.showInputDialog("please input the number of your Combination: ");

int num = Integer.parseInt(numString);

Combine(input, num);

}

private static void Combine(String input, int num) {

char[] a = input.toCharArray();

String b = "";

Combine(a, num, b, 0, a.length);

}

private static void Combine(char[] a, int num, String b, int low, int high) {

if (num == 0) {

System.out.println(b);

} else {

for (int i = low; i a.length; i++) {

b += a[i];

Combine(a, num - 1, b, i+1, a.length);

b=b.substring(0, b.length()-1);

}

}

}

}

java中遞歸算法是什么怎么算的?

一、遞歸算法基本思路:

Java遞歸算法是基于Java語言實現(xiàn)的遞歸算法。遞歸算法是一種直接或者間接調(diào)用自身函數(shù)或者方法的算法。遞歸算法實質(zhì)是把問題分解成規(guī)模縮小的同類問題的子問題,然后遞歸調(diào)用方法表示問題的解。遞歸往往能給我們帶來非常簡潔非常直觀的代碼形式,從而使我們的編碼大大簡化,然而遞歸的思維確實跟我們的常規(guī)思維相逆的,通常都是從上而下的思維問題,而遞歸趨勢從下往上的進(jìn)行思維。

二、遞歸算法解決問題的特點:

【1】遞歸就是方法里調(diào)用自身。

【2】在使用遞歸策略時,必須有一個明確的遞歸結(jié)束條件,稱為遞歸出口。

【3】遞歸算法代碼顯得很簡潔,但遞歸算法解題的運行效率較低。所以不提倡用遞歸設(shè)計程序。

【4】在遞歸調(diào)用的過程中系統(tǒng)為每一層的返回點、局部量等開辟了棧來存儲。遞歸次數(shù)過多容易造成棧溢出等,所以一般不提倡用遞歸算法設(shè)計程序。

【5】在做遞歸算法的時候,一定把握出口,也就是做遞歸算法必須要有一個明確的遞歸結(jié)束條件。這一點是非常重要的。其實這個出口就是一個條件,當(dāng)滿足了這個條件的時候我們就不再遞歸了。

三、代碼示例:

public?class?Factorial?{

//this?is?a?recursive?function

int?fact(int?n){

if?(n==1)?return?1;

return?fact(n-1)*n;

}

}

public?class?TestFactorial?{

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

//?TODO?Auto-generated?method?stub

Factorial?factorial=new?Factorial();

System.out.println("factorial(5)="+factorial.fact(5));

}

}

代碼執(zhí)行流程圖如下:

此程序中n=5就是程序的出口。


網(wǎng)站標(biāo)題:java語言遞歸代碼 java遞歸簡單例子
轉(zhuǎn)載源于:http://weahome.cn/article/hihjjj.html

其他資訊

在線咨詢

微信咨詢

電話咨詢

028-86922220(工作日)

18980820575(7×24)

提交需求

返回頂部