// ¿Hasta dónde llega la recursión? Uso: deep_sum recursive N, o deep_sum loop N
#include <stdio.h>
#include <string.h>

static long long sum_recursive(int n) {
    if (n <= 0) {
        return 0;
    }
    return n + sum_recursive(n - 1);
}

static long long sum_loop(int n) {
    long long total = 0;
    for (int i = 1; i <= n; i++) {
        total = total + i;
    }
    return total;
}

int main(int argc, char *argv[]) {
    int n;
    char extra;
    if (argc != 3 || sscanf(argv[2], "%d %c", &n, &extra) != 1) {
        fprintf(stderr, "uso: %s recursive|loop N\n", argv[0]);
        return 1;
    }
    if (strcmp(argv[1], "recursive") == 0) {
        printf("%lld\n", sum_recursive(n));
    } else if (strcmp(argv[1], "loop") == 0) {
        printf("%lld\n", sum_loop(n));
    } else {
        fprintf(stderr, "uso: %s recursive|loop N\n", argv[0]);
        return 1;
    }
    return 0;
}
