Problema #2757 de pe pbinfo.ro Se consideră șirul de cifre zecimale obținut prin scrierea consecutivă a numerelor naturale de la 100 la 999: 100101102103104105…995996997998999. Să se afișeze cifra ce apare pe poziția k în acest șir. Date de intrare Programul citește de la tastatură un număr natural n și apoi n numere naturale nenule, k. Date de ieșire Programul va afișa pe ecran, pe un singur rând și separate printr-un spațiu, n numere reprezentând cifrele din șir de pe pozițiile k, citite. Restricții și precizări 1 ≤ n ≤ 100.000 1 ≤ k ≤ 2700 Exemplu Intrare 3 5 10 18 Ieșire 0 1 5 Explicație A 5-a cifră din șir este 0, cea de pe poziția 10 este 1, iar cea de pe poziția 18 este 5.

Răspuns :

Răspuns:

#include <iostream>

using namespace std;

int n, k, i, m, cif, num;

int main()

{

   cin >> n;

   for (i=1; i<=n; ++i)

   {

       cin >> k;

       num=100; m=3;

       while (m<k)

       {

           m+=3; ++num;

       }

       if (m-k==0) cif=num%10;

       if (m-k==1) cif=(num/10)%10;

       if (m-k==2) cif=num/100;

       cout << cif << " ";

   }

}

Explicație:

După o mică cercetare a codului, după o citire atentă a enunțului, sper să fie clar codul și logica lui...  Succese!

Vă mulțumim că ați ales să vizitați platforma noastră dedicată Informatică. Sperăm că ați găsit conținutul oferit util și inspirațional. Dacă aveți întrebări suplimentare sau doriți asistență, vă încurajăm să ne contactați. Ne-ar face plăcere să reveniți și nu uitați să ne adăugați în lista dumneavoastră de favorite!


RO Learnings: Alte intrebari