fbpx

Problema #2757 – CifreZecimale1 – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

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.

#include <bits/stdc++.h>
using namespace std;

int c[3000];

int main()
{
    int p = 1;
    for(int i = 100 ; i <= 999 ; ++i)
    {
        int ci = i;
        c[p+2]=ci%10;
        ci/=10;
        c[p+1]=ci%10;
        ci/=10;
        c[p]=ci;
        p+=3;
    }
    int n;
    cin >> n;
    int x;
    for(int i = 1 ; i <= n ; ++i)
        cin >> x, cout << c[x] << ' ';
    return 0;
}
Comentarii

S-ar putea sa iti placa