Informatică, întrebare adresată de Istefan, 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 HariSeldon
8
#include <iostream>using namespace std;

/* p = acea putere a lui 10 necesara pentru rescrierea succesiva a valorii v fara cate o cifra
   copieV o folosesc ca sa trec prin cifrele lui V are si rol de opritor
   vFaraOcifra  va avea pe rand valoarea din v fara una dintre cifre
   rMax = variabila in care calculez restul maxim
*/
int raspuns( int v )
{
    int p=1;
    int copieV = v;
    int vFaraOcifra = v;
    int rMax=0;
    while(copieV!=0)
    {
        p=p*10;
        vFaraOcifra = (v/p) * (p/10) + v%(p/10);
        if( vFaraOcifra != 0 )
        {
            if(rMax < v%vFaraOcifra)
                rMax = v%vFaraOcifra;
        }
        copieV /= 10;
    }
    return rMax;}
int main()
{
    int v;
    cout<<"Dati v ";
    cin>>v;
    cout<<raspuns (v);
}

//Ptr orice intrebari sau nelamuriri txt me

Alte întrebări interesante