Liczby parzystocyfrowe – omówienie zadania z I etapu Olimpiady Informatycznej Juniorów

Szczegółowe omówienie zadania Liczby parzystocyfrowe:

Link do powyższego omówienia zadania Liczby parzystocyfrowe:
https://youtu.be/vJOcZSDAprk

Link do treści zadania Liczby parzystocyfrowe:
https://szkopul.edu.pl/problemset/problem/g8UTPdAfFtio16W9-8q9hlt-/site

Zadanie pochodzi z I etapu XIV Olimpiady Informatycznej Juniorów.
https://szkopul.edu.pl/task_archive/oig/

Warto startować w Olimpiadzie!
https://youtu.be/1qhkkV6YtE8?t=11

Zadanie wymaga pomysłu i wykorzystania system pozycyjnego o podstawie 5.

Zadanie omawia Karol Pokorski, jeden z najlepszych nauczycieli algorytmiki, wychowawca wielu zwycięzców i medalistów Olimpiad Informatycznych, prowadzący zajęcia koła informatycznego we Wrocławiu oraz w internecie:
https://solve.edu.pl/~sparingi/

——–
Jak się uczyć na podstawie tego zadania?
https://youtu.be/QgLyXYmFQeU?t=2019
Pamiętaj by zajrzeć max 1 raz – wtedy się rozwijasz:
https://youtu.be/pkLXuuOe_qA?t=3625
——-

#include "bits/stdc++.h"

using namespace std;

int main() {
  // Wyłączamy synchronizację. Przyśpiesza to operacje wejścia/wyjścia.
  ios_base::sync_with_stdio(0);

  long long N;
  cin >> N;

  // W tablicy cyfry[] będziemy trzymać kolejne cyfry zapisu piątkowego N.
  // Możemy bezpiecznie założyć, że nie będzie ich nigdy więcej niż 50,
  // ponieważ N jest równe co najwyżej $10^{18}$, a to mniej niż $5^{50}$.
  int cyfry[50];

  // Zmienna k oznacza miejsce, na które wpisujemy kolejną znalezioną cyfrę.
  // Zaczynamy od k = 0, po każdej wpisanej cyfrze zwiększamy k.
  int k = 0;

  // Będziemy znajdować kolejne cyfry N, dzieląc za każdym razem N przez 5,
  // aż liczba N zmniejszy się do 0.
  while (N>0) {
    cyfry[k] = N%5;
    k++;
    N = N/5;
  }

  // Teraz wypisujemy cyfry, od ostatniej znalezionej (czyli od k-1 do 0).
  // Każdą wypisaną cyfrę mnożymy przez 2.
  for (int i=k-1; i>=0; i--) cout << 2*cyfry[i];
}
Kod C++ programu Liczby parzystocyfrowe, który jest omówiony w powyższym filmie i który otrzymuje 100%

Nie dodano jeszcze komentarza, rozpocznij dyskusję pierwszy.

Dodaj komentarz