Cerința
Georgiana a mai primit o problemă de la doamna profesor. Se dau n
triplete de forma m
, b
, r
, iar pentru fiecare triplet Georgiana trebuie să afle care este cel mai mic număr natural format cu m
cifre, care împărţit la b
dă restul r
.
Date de intrare
Programul citește de la tastatură numărul n
, iar apoi n
triplete de numere naturale.
Date de ieșire
Programul va afișa pe ecran, pe linii separate, cele n
numere cerute.
Restricții și precizări
1 ≤ n ≤ 10
1 ≤ m ≤ 100.000
2 ≤ b ≤ 10
0 ≤ r < b
Exemplu
Intrare
3 2 3 1 3 5 4 4 6 0
Ieșire
10 104 1002
Explicație
Cel mai mic număr de două cifre care dă restul 1
la împarţirea cu 3
este 10
.
Cel mai mic număr de trei cifre care dă restul 4
la împarţirea cu 5
este 104
.
Cel mai mic număr de patru cifre care dă restul 0
la împarţirea cu 6
este 1002
.
Cum e corect?
cout < "As la info";
cout << "As la info";
cout >> "As la info";
Felicitări! Poți mai mult?
Avem sute de probleme pentru tine, fiecare cu explicații ușor de înțeles.
Greșit, dar nu-i bai!
Antrenează-te cu sutele de probleme pe care ți le-am pregătit. Îți explicăm fiecare problemă în parte.
Rezolvare
Iată rezolvarea de 100 de puncte pentru problema NumarMinim0:
#include <iostream>
using namespace std;
int n , m , b , r , c , r1, n1 , j, i , x[10] ,t ;
char a[1001] ;
void afis(int n1 , int u)
{
cout << 1 ;
c = (n1-1) / 1000 ;
r1 = (n1-1) % 1000 ;
if (r1==0){c-- ; r1=1000 ;}
for ( j=1 ; j<=c ; j++) cout << a ;
for(j=1 ; j<=r1-1 ; j++) cout << 0 ;
cout << u << "\n";
}
int main()
{
cin >> n ;
for(i=0 ; i<=999 ; i++)a[i]='0';
for ( i=1 ; i<=n ; i++ )
{
cin >> m >> b >> r ;
if ( m==1 ) cout << r << "\n" ;
else
{
switch (b)
{
case 2 :
afis(m,r);
break ;
case 5 :
afis(m,r);
break ;
case 10 :
afis(m,r);
break ;
case 3 :
afis(m,(r+2)%3);
break ;
case 9 :
afis(m,(r+8)%9);
break ;
case 6 :
afis(m,(r+2)%6);
break ;
case 4 :
if ( m==2 ) afis(m,(r+2)%4);
else afis(m,r);
break ;
case 7 :
x[2] = 4 ;
x[3] = 5 ;
x[4] = 1 ;
x[5] = 3 ;
x[0] = 2 ;
x[1] = 6 ;
t = m % 6 ;
afis(m,(r+x[t])%b);
break ;
case 8 :
if ( m==2 ) afis(m,(r+6)%8);
else if (m==3) afis(m,(r+4)%8);
else afis(m,r);
break ;
}
}
}
return 0;
}
Atenție
Enunțurile afișate pe această pagină aparțin exclusiv site-ului PbInfo. Astfel, pentru ștergerea conținutului, puteți să ne contactați la adresa .
Rezolvarea problemei #1910 NumarMinim0
Pe această pagină găsești rezolvarea de 100 de puncte pentru problema #1910 NumarMinim0 de pe PbInfo.ro. Atenție: nu încurajăm copiatul codului! Totuși, credem cu tărie că analizarea unei soluții corecte este o metodă foarte ușoară de a învăța informatică, astfel că oferim sursele pentru peste 1500 de probleme de pe platforma PbInfo.ro.
Pentru rezolvări PbInfo de la peste 1500 de probleme, vă invităm să intrați pe site-ul nostru!