Informatică, întrebare adresată de matei21, 9 ani în urmă

Pentru a se numerota paginile unei cărți s-au folosit n cifre. Câte pagini are cartea?
1 ≤ n ≤ 1.000.000
pentru fiecare test exista soluție.
numerotarea paginilor se face de la 1.


Razzvy: in c++?
ionutg38: da
ionutg38: elimina <code> si </code>

Răspunsuri la întrebare

Răspuns de ionutg38
3
<code>
#include <iostream> using namespace std; int main() { unsigned long n,np=0; cin>>n; if(n>488889&&n<=5888889) np=(n-488889)/6+99999; if(n>38889&&n<=488889) np=(n-38889)/5+9999; if(n>2889&&n<=38889) np=(n-2889)/4+999; if(n>189&&n<=2889) np=(n-189)/3+99; if(n>9&&n<=189) np=(n-9)/2+9; if(n<=9) np=np+n%10; cout<<np; return 0; }
</code>
Răspuns de Razzvy
20
//Pentru paginile 1-9 avem 9 * 1 cifre
//Pentru paginile 10-99 avem 90 * 2 cifre
//Pentru paginile 100-999 avem 900 * 3 cifre
//Si tot asa

#include <iostream>using namespace std;
int main(){   
    int n, pag = 0, p = 9, i = 1;
//pag este nr de pagini, i este nr de cifre, iar p reprezinta cate numere au i cifre
    cin>>n;
    while(n >= p * i){       
             n -= p * i;       
             pag += p;       
             p *= 10;       
             ++i;   
    }   
    pag += n / i;   
    cout<<pag;
}

blindseeker90: Mi se pare mult mai clar codul tau
Alte întrebări interesante