Informatică, întrebare adresată de silvia001, 9 ani în urmă

Cerința Se dă n un număr natural. Aflați restul maxim care se poate obține dacă împărțim numărul n la orice număr care se obține prin eliminarea unei cifre a sa.

Date de intrare
Programul citește de la tastatură numărul n.

Date de ieșire
Programul va afișa pe ecran numărul r, reprezentând restul maxim cerut.

Restricții și precizări
10 ≤ n ≤ 2.000.000.000 dacă prin eliminarea unei cifre se obține numărul 0, atunci n nu se va împărți la 0.

Exemplu
Intrare: 217
Ieșire: 13

Explicație
217:17=12 rest 13, 217:27=8 rest 1, 217:21=10 rest 7, deci restul maxim obținut este 13.

Răspunsuri la întrebare

Răspuns de radutanasa86
0
#include <iostream>using namespace std;int a[12],n,lg;int main(){    int i,numar,sol=0,x,j;    cin>>n;    numar=n;    while(n)    {        a[++lg]=n%10;        n/=10;    }    for(i=lg;i>=1;i--)    {        x=0;        for(j=lg;j>=1;j--)        {            if(j!=i)              x=x*10+a[j];        }        sol=max(sol,numar%x);    }    cout<<sol<<"\n";
}

radutanasa86: #include <iostream>
using namespace std;
int a[12],n,lg;
int main()
{
int i,numar,sol=0,x,j;
cin>>n;
numar=n;
while(n)
{
a[++lg]=n%10;
n/=10;
}
for(i=lg;i>=1;i--)
{
x=0;
for(j=lg;j>=1;j--)
{
if(j!=i)
x=x*10+a[j];
}
sol=max(sol,numar%x);
}
cout<<sol<<"\n";

}
Alte întrebări interesante