Solución a la Tarea 1: El calendario de la cuenta larga

Hay al menos dos formas de resolver esta tarea. La primera (y la que casi todos siguieron) fue la vista en clase. Una segunda forma (mostrada abajo) es la de calcular primero los residuos de las divisiones entre 20, 18, 20 y 20, respectivamente, para de forma alternada calcular los valores enteros de las divisiones entre 20, 18, 20 y 20, respectivamente.

#include <stdio.h>
 
int main(void)
{
  long n, b, k, t, u, d;
 
  scanf("%ld", &n);
  d = n % 20;
  n = n / 20;
  u = n % 18;
  n = n / 18;
  t = n % 20;
  n = n / 20;
  k = n % 20;
  b = n / 20;
  printf("%ld %ld %ld %ld %ld\n", b, k, t, u, d);
  return 0;
}

Los valores de entrada y salida empleados para la evaluación fueron los siguientes:

Entrada       Salida
314159265     2181 13 4 11 5
31415926      218 3 6 8 6
3141592       21 16 6 11 12
314159        2 3 12 11 19
31415         0 4 7 4 15
3141          0 0 8 13 1
314           0 0 0 15 14
31            0 0 0 1 11
3             0 0 0 0 3
1314159265    9126 2 2 7 5

Para probar su tarea en UNIX, escriban la instrucción gcc clargaNN.c -o clarga para compilar su programa, y la instrucción ./clarga para correrlo. Algunos errores comúnes fueron: (a) Leer int como long o viceversa. (b) Imprimir letreros de cualquier tipo e incluso usar conio.h, lo cual estaba explícitamente prohibido. (c) Todo tipo de conversiones mal hechas. (d) Aunque no es un error, lo mejor era usar enteros para las operaciones, pues los cálculos con flotantes son inexactos. Además, les recuerdo que sólo deben enviar el archivo .c y que éste debe tener el nombre correcto.