Heim  >  Artikel  >  Java  >  Analyse zur Verwendung des rekursiven Java-Algorithmus

Analyse zur Verwendung des rekursiven Java-Algorithmus

黄舟
黄舟Original
2016-12-19 14:17:351749Durchsuche

Ein rekursiver Algorithmus ist ein Algorithmus, der sich selbst direkt oder indirekt aufruft. In der Computerprogrammierung sind rekursive Algorithmen sehr effektiv bei der Lösung einer großen Klasse von Problemen. Dadurch ist die Beschreibung des Algorithmus häufig prägnant und leicht verständlich.

Frage 1: Die Regeln für eine Zahlenspalte lauten wie folgt: 1, 1, 2, 3, 5, 8, 13, 21, 34. Was ist die 30. Ziffer? Verwenden Sie Rekursion, um

public class FibonacciSequence {
    public static void main(String[] args){
        System.out.println(Fribonacci(9));

    }
    public static int Fribonacci(int n){
        if(n<=2)
            return 1;
        else
            return Fribonacci(n-1)+Fribonacci(n-2);

    }
}

Frage 2: Problem mit dem Turm von Hanoi


Das Problem mit dem Turm von Hanoi (auch als Turm von Hanoi bekannt) zu implementieren eigentlich ein altes Problem in der indischen Legende.

Brahma, der Gott, der die Welt erschaffen hat (ein Gott, der Pangu in China ähnelt), hinterließ drei Diamantstäbe in einem Tempel. Der erste war mit 64 runden Goldstücken bedeckt und der größte befand sich unten , einer nach dem anderen, der andere Sie sind klein und nacheinander gestapelt. Die Mönche im Tempel bewegen sie einzeln von einem Stock zum anderen. Es ist vorgeschrieben, dass der mittlere Stock als Hilfe verwendet werden kann, aber jeweils nur einer. und der Große kann nicht auf den Kleinen gelegt werden. Nudel. Das Berechnungsergebnis ist sehr beängstigend (die Anzahl der Bewegungen der Scheibe): 18446744073709551615. Selbst wenn die Mönche ihr ganzes Leben damit verbringen, ist es unmöglich, die Bewegung der Goldscheibe abzuschließen.

Anforderung: Geben Sie eine positive ganze Zahl n ein, die angibt, dass sich auf der ersten Säule n Festplatten befinden. Geben Sie eine Folge von Operationen im Format „t von x nach y verschieben“ aus. Jede Operation hat eine Zeile, was bedeutet, dass die Scheibe mit der Nummer t in Spalte x in Spalte y verschoben wird. Die Säulen sind mit A, B und C nummeriert. Sie müssen alle Böden mit möglichst wenig Arbeitsschritten von Säule A nach Säule C übertragen.

public class Hanio {
    public static void main(String[] args){
        int i=3;
        char a =&#39;A&#39;,b=&#39;B&#39;,c=&#39;C&#39;;
        hanio(i,a,b,c);
    }
    public static void hanio(int n,char a,char b,char c){
        if(n==1)
            System.out.println("移动"+n+"号盘子从"+a+"到"+c);
        else{
            hanio(n-1,a,c,b);//把上面n-1个盘子从a借助b搬到c
            System.out.println("移动"+n+"号盘子从"+a+"到"+c);//紧接着直接把n搬动c
            hanio(n-1,b,a,c);//再把b上的n-1个盘子借助a搬到c
        }
    }
}

Das Obige ist die Analyse der Verwendung des rekursiven Java-Algorithmus. Weitere verwandte Inhalte finden Sie auf der chinesischen PHP-Website (www.php.cn).


Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn