Olimpiada Oaxaqueña de Informática
  • Bienvenido a la Olimpiada Oaxaqueña de Informática
  • Temario
    • Introducción a la Programación
      • Definición de computadora
      • Definición de Sistema Operativo
      • Definición de lenguaje de programación
      • Definición de compilador
      • Sistema Binario y Hexadecimal
      • Operaciones AND, OR, NOT, XOR
      • Definición y ejemplo de algoritmos
      • Representación gráfica de un algoritmo
      • Qué es un pseudocódigo
        • Estructura base y Variables
        • Condicionales y ciclos
      • Configuración e instalación de compilador de C y C++
    • Lenguajes de Programación C y C++
      • Presentación de C y C++ como lenguajes de programación
      • Estructura de un programa en C++
        • Ejemplos de códigos en C++
      • Tipos de datos y variables
      • Entrada y salida de datos STDIN SDTOUT
      • Estructuras de Control y Repetición
      • Introducción a estructuras de datos: arreglos
    • Algoritmos de ordenamiento
      • Bubble Sort
    • Estructuras de datos
      • Pilas (Stack)
    • Paradigmas de Solución de Problemas
    • Gráfos
    • Matemáticas
    • Procesamiento de Cadenas
  • OOI 2019
    • Cursos online
      • Clase 1
      • Clase 2
      • Clase 3
      • Clase 4
      • Clase 5
      • Clase 6
      • Clase 7
      • Clase 8
      • Clase 9
      • Clase 10
      • Clase 11
      • Clase 12
      • Clase 13
      • Clase recursión introductorio
  • OOI 2020
    • Instrucciones para nuevos miembros
    • Cursos introductorios
      • Clase 1
      • Clase 2
      • Clase 3
      • Clase 4
      • Clase 5
      • Clase 6
      • Clase 7
      • Clase 8
      • Clase 9
      • Clase 10
      • Clase 11
      • Clase 12
      • Clase 13
      • Clase 14
      • Clase 15
      • Clase 16
      • Clase 17
      • Clase 18
      • Clase 19
      • Clase 20
      • Clase 21
      • Clase 22
    • Cursos avanzados
      • Temario
      • Sesión 1
      • Sesión 2
      • Sesión 3-4
      • Sesión 5
      • Sesión 6
      • Sesión 7
      • Sesión 8
      • Sesión 9-10
      • Sesión 11
      • Sesión 12
      • Sesión 13
      • Sesión 14
      • Sesión 15
      • Sesión 16
      • Sesión 17
      • Sesión 18
      • Sesión 19
      • Sesión 20
      • Sesión 21
      • Sesión 22
    • Cursos matemáticas discretas
      • Sesión 1
      • Sesión 2
  • OOI 2021
    • Fase 4. Semana 1
  • Misceláneos
    • Complejidad de un algoritmo
    • Tutorial instalación VS Code, compilador y debugger para C++
Powered by GitBook
On this page
  • Solución de Tarea
  • Tarea
  1. OOI 2019
  2. Cursos online

Clase 8

PreviousClase 7NextClase 9

Last updated 6 years ago

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

Solución de Tarea

Problema:

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

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

Opcional: Usar estructura vector en vez de un arreglo de enteros. Referencia:

https://omegaup.com/arena/problem/nofib#problems
http://www.cplusplus.com/reference/vector/vector/