Informatică, întrebare adresată de alx2004mc, 8 ani în urmă

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ăspunsuri la întrebare

Răspuns de boiustef
2

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!


alx2004mc: Multumesc mult!
boiustef: cu plăcere, Succese!
Alte întrebări interesante