Pentru numerotarea paginilor unei serii enciclopedice formate din unul sau mai multe volume se presupune că se folosesc n cifre. Fiecare volum are 300 de pagini, eventual cu excepţia ultimului volum care ar putea avea mai puţine.
Pentru n dat, să se determine numărul de volume din serie V şi numărul de pagini P ale ultimului volum. Dacă nu este posibilă numerotarea paginilor folosind n cifre, se va afişa mesajul IMPOSIBIL.
Date de intrare
Programul citește de la tastatură numărul n.
Date de ieșire
Programul va afișa pe ecran numerele V P, separate prin exact un spaţiu, sau mesajul IMPOSIBIL.
Restricții și precizări
1 ≤ n ≤ 1 000 000 000
numerotarea paginilor se face începând cu 1
Sa precizati si cum ati gandit!
FBI95:
În C++ trebuie?
Răspunsuri la întrebare
Răspuns de
4
#include<iostream.h>
#include<conio.h>
#include<stdio.h>
#include<math.h>
int main()
{
clrscr();
int n,k=0,v,ok=1;
cin>>n; // sunt 792 (9+180+603) cifre într-un volum
v=n/792+1; //nr de volume
n=n%792; //nr de cifre din ultimul volum
if(n<9) k=n; //rămâne de o cifră
else
{
k=k+9; //încap toate de o cifră
n=n-9; //scad cele numerotate cu o cifră
if(n<180) if(n%2 !=0) ok=0; //ultima cifră nu se poate numerota cu 2 cifre
else k=k+n/21; //se numerotează cu 2 cifre
else
{
k=k+90; //s.au numerotat toate cu 2 (90)
n=n-180; //s.au folosit 180 cifre
if(n%3 !=0) ok=0; //nu se poate cu 3
else k=k+n/3; //se poate cu 3
}
}
if(ok) cout<<v<<endl<<k;
else cout "imposibil";
getch();
}
#include<conio.h>
#include<stdio.h>
#include<math.h>
int main()
{
clrscr();
int n,k=0,v,ok=1;
cin>>n; // sunt 792 (9+180+603) cifre într-un volum
v=n/792+1; //nr de volume
n=n%792; //nr de cifre din ultimul volum
if(n<9) k=n; //rămâne de o cifră
else
{
k=k+9; //încap toate de o cifră
n=n-9; //scad cele numerotate cu o cifră
if(n<180) if(n%2 !=0) ok=0; //ultima cifră nu se poate numerota cu 2 cifre
else k=k+n/21; //se numerotează cu 2 cifre
else
{
k=k+90; //s.au numerotat toate cu 2 (90)
n=n-180; //s.au folosit 180 cifre
if(n%3 !=0) ok=0; //nu se poate cu 3
else k=k+n/3; //se poate cu 3
}
}
if(ok) cout<<v<<endl<<k;
else cout "imposibil";
getch();
}
Alte întrebări interesante
Engleza,
8 ani în urmă
Matematică,
8 ani în urmă
Matematică,
8 ani în urmă
Limba română,
9 ani în urmă
Matematică,
9 ani în urmă
Limba română,
9 ani în urmă