/**
 * Berechnet das logistische Wachstum nach B(t) Zeitschritten für
 * die Änderungsrate k, die Schranke S und den Anfangswert B(0) = A
 *
 * log-wachs <t>
 *     t Zeitschritte
 *
 * David Peter <davidpeter@web.de>
 * 2002-12-16
 */

#include <stdio.h>

float k = 0.0133;
float S = 28;
float A = 15;

void ausgabe(int t, float v);

float B(int t) {
    if (t == 0) {
        return A;
    }
    else {
        float b = B(t - 1);
        ausgabe(t - 1, b);
        return b + k * b * (S - b);
    }
}

void ausgabe(int t, float v) {
    printf("B(%d) = %f\n", t, v);
}

int main(int argc, char *argv[]) {
    if (argc != 2) {
        printf("Fehlendes Argument:\n    log-wachs <Anzahl Zeitschritte>\n");
        exit(1);
    }
    ausgabe(atoi(argv[1]), B(atoi(argv[1])));
}

