360
Cerința
Georgiana nu are clipă de răgaz. Profesorul de info îi cere acum să afle cel mai mic număr natural de n cifre care împărţit la b dă restul r. Poate o ajutaţi să treacă şi peste acest hop.
Date de intrare
Programul citește de la tastatură numerele n, b şi r.
Date de ieșire
Programul va afișa pe ecran numărul cerut.
Restricții și precizări
1 ≤ n ≤ 100.0002 ≤ b ≤ 1.000.000.0000 ≤ r < b- dacă numărul nu există se va afişa
-1
Exemplu
Intrare
5 97 14
Ieșire
10005
Explicație
Cel mai mic număr de 5 cifre care împărţit la 97 dă restul 14 este 10005.
#include <bits/stdc++.h>
using namespace std;
long long n , b , r , k , x , sum , i , nr;
int main()
{
cin >> n >> b >> r;
x = r;
while(x != 0) k++ , x /= 10;
if(k > n) cout << "-1";
else if(k == n) cout << r;
else
{
sum = 1;
for(int i = 2 ; i <= n ; i++) sum = (sum * 10) % b;
if(sum <= r) nr = r - sum;
else nr = b - sum + r;
if(nr == 0)
{
cout << 1;
for(int i = 1 ; i <= n - 1 ; i++) cout << 0;
}
else
{
k = 0; x = nr;
while(x != 0) k++ , x /= 10;
cout << 1;
for(int i = 1 ; i <= n - k - 1 ; i++) cout << 0;
cout << nr;
}
}
}
Comentarii