Hallo allerseits!
Ich habe ein Problem mit folgender Aufgabe:
Betrachtet folgende Bildungsvorschrift einer Zahlenfolge:
x k+1 =( 3xk + 1 falls xk ungerade und xk=2 falls xk gerade).
wobei x0 >= 0
Unabhängig vom Startwert x0 nimmt die Folge nach endlich vielen Schritten periodisch die Werte (4; 2; 1) an. Beispiel:
x0 = 5; x1 = 16; x2 = 8; x3 = 4 ; x4 = 2; x5 = 1; x6 = 4; x7 = 2; x8 = 1;....
Nun zur Aufgabe:
Programmiere mit Hilfe der while- und der if-Anweisungen ein Programm das die Folgenglieder dieser Folge zu einem festen x0 >= 0 berechnet und am Bildschirm ausgibt.
Gehe bei der Lösung der Aufgabe folgendermaßen vor:
1) Als Erstes deklariere zwei integer-Variablen x und k. In der Variablen x soll der aktuelle Wert xk und in k der Index von xk (Anzahl bereits ausgeführter Schritte) gespeichert werden.
Initialisiere die beiden Variablen mit sinnvollen Werten, z.B. x0 = 27, k = 0.
2) Überlege aus obigen Angaben zum Konvergenzverhalten der Folge eine Abbruchbedingung für die while-Schleife, so dass die periodischen Werte nur ein Mal berechnet werden.
3) Programmiere in der Schleife die Berechnung der Folgenkomponenten xk.
Nun ist meine Frage, wie die Lösung lautet?
Ich bin ein Frischling auf dem Gebiet des c++ und nutze MS Visual Express.
Soweit bin ich gekommen:
#include<iostream>
using namespace std;
int main()
{
int x=27;
int k=0;
if (x >= 0) // wenn x >= 0
{
}
Ist dieser Anfang überhaupt richtig? Ich weis nicht, wie ich weiterverfahren soll.
Es wäre wirklich sehr hilfreich, wenn jemand hier mehr weis und es vermag die Aufgabe zu lösen (mit Kommentaren wäre es natürlich super! Da ich ja auch etwas lernen möchte :-))
Ich hoffe es findet sich einer, der mit der Aufgabe zu recht kommt