Cerința
Se construiește un număr natural N
ale cărui prime 51
cifre sunt:
Cerința
Se construiește un număr natural N
ale cărui prime 51
cifre sunt:
N = 112233445566778899100111122133144155166177188199200......
Deduceți regula prin care se construiește numărul N
și stabiliți care este cea de a K
-a cifră din scrierea acestui număr.
Scrieţi un program care citeşte numărul K
şi care determină cea de a K
-a cifră din scrierea lui N
.
Date de intrare
Programul citește din fișierul kcifra.in
, de pe prima linie, numărul natural nenul K
.
Date de ieșire
Programul scrie în fişierul kcifra.out
, pe prima linie, un număr natural (o cifră) reprezentând cea de a K
-a cifră din scrierea numărului N
construit.
Restricții și precizări
1 ≤ K ≤ 588888
K
număr natural
Exemplul 1:
Intrare
10
Ieșire
5
Explicație
Primele 10
cifre ale lui N
sunt: 1 1 2 2 3 3 4 4 5 5
.
Exemplul 2:
Intrare
51
Ieșire
0
Explicație
Primele 51
cifre ale lui N
sunt: 112233445566778899100111122133144155166177188199200
.
#include <bits/stdc++.h> using namespace std; ifstream cin("kcifra.in"); ofstream cout("kcifra.out"); short a[588889]; int main() { int n; cin >> n; int cnt=0; int cif=1; for(int i = 1 ; i <= 588888 ; i+=2) { if(cnt==0) a[i]=a[i+1]=cif , cif++; else { short v[10]; int p = 0; int ccnt=cnt; while(cnt) { v[p]=cnt%10; p++; cnt/=10; } cnt=ccnt; for(int j = p - 1 ; j >= 0 ; --j) a[i]=v[j] , i++; a[i+1]=a[i]=cif; cif++; } if(cif>9) cif = 0 , cnt++; } cout << a[n]; return 0; }