C :: Aufgabe #251

1 Lösung Lösung öffentlich

Die Collatz-Sequenz (3n+1)

Anfänger - C von DragStar - 23.03.2020 um 09:34 Uhr
Schreibe ein Programm, welches die Eingabe einer Zahl anfordert und dann von dieser Zahl die Collatz-Sequenz ausgibt.

Lösungen:

vote_ok
von kathleenw (3600 Punkte) - 20.07.2020 um 09:42 Uhr
Quellcode ausblenden C-Code
#include <stdio.h>
#include <stdlib.h>

#define LIMIT 100

int main(void)
{
    int n, i;
    int folge[LIMIT];
    
    printf("Ausgabe der Collatz Folge. Es werden nur %d Ziffern angezieigt.\n", LIMIT);
    printf("Die Folge ist unendlich!!!\n");
    printf("Bitte gebe eine natürliche Zahl ein: ");
    if (scanf("%d", &n)!=1) {
        printf("Falsche Eingabe.\n");
        return EXIT_FAILURE;
    }
    fflush(stdin);
    
    folge[0] = n;
    
    //Folge berechnen
    for (i=1;i<LIMIT;i++) {
        if (n%2==0)
            n = n/2;
        else
            n = 3*n+1;
        folge[i] = n;
    }
    
    //Folge ausgeben
    for (i=0; i<LIMIT; i++) {
        printf("%d ", folge[i]);
    }
    printf("\n");
    
    return EXIT_SUCCESS;
}