Advertisement
oxten2778

Números Afortunados

Oct 17th, 2017
55
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C 1.23 KB | None | 0 0
  1. /*
  2. Autor: Sebastián Saavedra
  3. Especialidad: Ingeniero Informático
  4. Universidad: U. Católica de Valparaíso Chile
  5. Fecha: 17 de octubre de 2017
  6. Nombre Programa: Números afortunados
  7. */
  8.  
  9. #include <stdio.h>
  10.  
  11. void sublista (int lista[], int *n, int k);
  12.  
  13. int main (void)
  14. {
  15.     int n;
  16.     int i;
  17.     do {
  18.     scanf("%d",&n);
  19.         // Si el número es distinto de 0 se ejecutara el codigo
  20.         if (n != 0) {
  21.             int lista[n];
  22.             // poblar vector
  23.             for (i = 0; i < n; i++) {
  24.                 lista[i] = i + 1;
  25.             }
  26.             // enviar vector a una función recursiva
  27.             printf("%d:",n);
  28.             sublista(lista,&n,2);
  29.             printf("\n");
  30.         }
  31.     } while (n != 0);
  32.     return 0;
  33. }
  34. void sublista (int lista[], int *n, int k) {
  35.     int i;
  36.     int listaux[(*n)];
  37.     int cont = 0;
  38.     // condición base
  39.     if (k > (*n)) {
  40.         // Se imprime el vector final de forma decreciente
  41.         for (i = (*n)-1; i >= 0; i--) {
  42.             printf(" %d",lista[i]);
  43.         }
  44.         return;
  45.     }
  46.     for (i = 0; i < (*n); i++) {
  47.         if ((i % k) != 0) {
  48.             listaux[cont] = lista[i];
  49.             cont++;
  50.         }
  51.     }
  52.     return sublista(listaux,&cont,k+1);
  53. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement