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++?
Răspunsuri la întrebare
Răspuns de
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>
#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
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;
}
//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;
}
Alte întrebări interesante
Matematică,
9 ani în urmă
Chimie,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă
Limba română,
9 ani în urmă