2017-03-31 3 views
-2

Ich könnte etwas Hilfe mit meiner Programmieraufgabe verwenden. Ich brauche eine Rekursion, um arithmetic_series = arithmetic_series_recursive zu machen. Im Moment funktioniert meine rekursive Funktion nicht richtig. Es funktioniert nur bis zur Nummer drei. Die Funktionen sollen die Eingabe des Benutzers übernehmen und eine Zahl basierend auf der Anzahl der ganzen Zahlen in der Zahl bilden. IE, wenn der Benutzer 3 eingegeben wäre es 1 * 2 * 3 = 6.Versuchen, herauszufinden, wie Rekursionen verwendet werden, um die gleiche Antwort wie eine andere Funktion zu erhalten

int arithmetic_series(int n){ 
    int total = ((n+1) * n)/ 2; 
    cout << total << endl; 
    return total; 
} 

int arithmetic_series_recursive(int n){ 
    if(n==1){ 
      return 1; 
    }else{ 
    return n*arithmetic_series_recursive(n-1); 
    } 

} 
+0

Odds gut sind Ihre Entwicklungsumgebung kam mit einem Debugging-Tool. Das mag wie ein Ausweichen klingen, aber auf lange Sicht wird es Ihnen das Leben leichter machen, wenn Sie wissen, wie man einen Debugger benutzt. Es ist wahrscheinlich die Nummer eins Programmierer Produktivitätstool. – user4581301

+0

Oh @ FrançoisAndrieux Sie haben völlig Recht Ich weiß nicht, wie ich das vermisst habe. Haben Sie eine Idee, wie ich mit der Summe im Gegensatz zum Produkt arbeiten könnte? EDIT: NEVERMIND es war sehr einfach. –

Antwort

1

Ihre erste Funktion die Summe der ganzen Zahlen 1-n findet. Ihre zweite Funktion findet das Produkt dieses Bereichs oder !n. Ich kenne keine Vereinfachung, die Sie in Ihrer ersten Funktion verwenden könnten.

Wenn Sie die Summe der Zahlen zu finden bedeutet, können Sie die Ihre zweite Funktion ändern, um einen Zusatz zu der Vorform:

int arithmetic_series_recursive(int n) { 
    if (n == 1) { 
     return 1; 
    } 
    else { 
     return n + arithmetic_series_recursive(n - 1); 
    } 

} 
Verwandte Themen