Clase 8

Temas: Revisión de tareas y práctica.

Solución de Tarea

Problema: https://omegaup.com/arena/problem/nofib#problems

Solución

/*
    https://omegaup.com/arena/problem/nofib#problems
*/

#include<stdio.h>
#include<stdlib.h>

int is_fib_number(int fib[100], int N) {
    // Recorremos los numeros de fibonacci almacenados
    // en búsqueda de que no exista
    for (int i = 0; fib[i] <= N; i++) {
        // Si existe retornamos 1
        if (N == fib[i]) {
            return 1;
        }
    }

    // Retornamos 0 si no existe
    return 0;
}


int main(int argc, char const *argv[]) {
    int fib[100];
    int N;

    // Encontramos los numeros fibonacci y los guardamos en un arreglo
    fib[0] = 1;
    fib[1] = 2;
    for (int i = 2; fib[i-1] <= 30000; i++) {
        fib[i] = fib[i-1] + fib[i-2];
    }

    // Leer el numero
    scanf("%d", &N);

    // Buscamos los números menores a N
    for (int i = 3; i < N; i++) {
        if (is_fib_number(fib, i) == 0) {
            printf("%d ", i);
        }
    }

    return 0;
}

Siguientes pasos:

  1. Repasar y reescribir el código a C++

    1. Cambiar las bibliotecas stdio.h y stdlib.h por sus correspondientes en C++

    2. Cambiar las funciones scanf y printf por sus correspondientes en C++

    3. La función is_fib_number debe retornar una variable de tipo Booleana en vez de una de tipo Entero

    4. Opcional: Usar estructura vector en vez de un arreglo de enteros. Referencia: http://www.cplusplus.com/reference/vector/vector/

Tarea

Problema:

Encontrar cuántos horas, minutos y segundos de diferencia hay entre dos horas dadas.

Entrada

3 enteros H1, M1, S1 representando las horas, minutos y segundos de la primer hora

3 enteros H2, M2, S2 representando las horas, minutos y segundos de la segunda hora

Salida

Tres enteros indicando las horas, minutos y segundos de diferencia entre las dos horas.

Ejemplo:

Entrada

14 59 59
16 22 22

Salida

1 22 23

Last updated