- Fie N un numar natural nenul. Scriind în ordine, unul dupa altul, toate numerele naturale de la 1 la N obtinem o secventa de cifre. De exemplu, pentru N=22 obtinem:
- 12345678910111213141516171819202122
- Cerinta
- Scrieti un program care sa determine numarul de cifre dintr-o astfel de secventa.
- Date de intrare
- Fisierul de intrare cifre1.in contine o singura linie pe care se afla numarul natural N.
- Date de iesire
- Fisierul de iesire cifre1.out contine o singura linie pe care se afla numarul de cifre determinat.
- Restrictii
- 1<=N<=1 000 000 000
- Exemple
- cifre1.in cifre1.out cifre1.in cifre1.out cifre1.in cifre1.out
- 5 5 15 21 120 252
Enuntul este acesta:
Eu am incercat ceva care functioneaza doar pentru n<1000 si cred ca nu e prea eficient. Incerc de ceva timp sa gasesc o regula matematica dar nu reusesc. Cine ma poate ajuta?
- #include<iostream>
- using namespace std;
- int s=0, n, k;
- int main()
- {
- cout<<"n=";
- cin>>n;
- k=n;
- while(n)
- {
- n=n/10;
- s++;
- }
- if(k<10)
- cout<<k;
- else if((k>10) && (k<100))
- cout<<9+(k-9)*2;
- else if((k>100)&& (k<1000))
- cout<<189+300*(k/100%10-1)+((k/10%10)*10+k%10+1)*3;
- return (0);
- }
Aceasta este varianta mea.
Welcome to BitCell. Click here to register !
