#include

using namespace std;
int multiplu(int n , int k ) ;
int maximul (int n );
int main()
{
int n , k ;
cin >> n >> k ;
int rezultat = multiplu(n, k);
cout<< rezultat ;
return 0;
}
int multiplu (int n , int k )
{
int maxi = -1;
for(int i= 1 ; i <= maximul(n);i++)
if(i > maxi && i % k == 0 )
maxi = i;
return maxi ;
}
int maximul (int n)
{
int maxi;
while (n)
{
n/=10;
maxi= maxi * 10;
}
return maxi ;

}
acesta e codul meu pentru problema :Scrieți subprogramul multiplu cu doi parametri: n un număr natural nenul (n<11) și k un număr natural
nenul (n<10 9 ). Subprogramul determină și returnează, dacă există, cel mai mare numr natural cu n cifre
divizibil cu k și -1 dacă nu există un astfel de număr.
Exemplu: Pentru n=2 și k=40 subprogramul va returna valoarea 80
can rulez imi da -1 ... sunt obosit , ma puteti ajuta?


Răspuns :

Răspuns:

Salut! Am modificat programul tau si din testele mele functioneaza corect, sper sa te ajute si succes pe viitor!

Daca ai intrebari poti sa le lasi in comentarii

#include <iostream>

using namespace std;

int n,k,i;

int multiplu(int n, int k, int maxv1)

{

   int maxv2,contor=0;

   for(i=1;i<=maxv1;i++) {

       if(i%k==0) {

           maxv2=i;

           contor++;

       }

   }

   if(contor==0)

       return -1;

   else

   return maxv2;

}

int maxim(int n)

{

   int maxnr=1;

   while(n!=0) {

      maxnr=maxnr*10;

       n--;

   }

   maxnr--;

   return maxnr;

}

int main()

{

   int maxi;

   cin >> n >> k;

   maxi=maxim(n);

  cout << multiplu(n, k, maxi);

}