fbpx

Problema #1984 – cifra2 – Rezolvari PBInfo

de Mihai-Alexandru

Cristian, elev în clasa a V-a, a primit o cutie cu N bomboane. Chiar dacă i-ar plăcea, știe că nu este indicat să le mănânce pe toate imediat. L-a întrebat pe tatăl său câte bomboane are voie să mănânce și acesta i-a răspuns că poate mânca doar un număr sănătos de bomboane. Cristian a fost nedumerit. Tatăl i-a explicat că un număr sănătos este un număr natural care poate fi modificat, până se obține o singură cifră, prin eliminarea celei mai mici cifre din el și înlocuirea fiecărei cifre rămase în număr cu diferența dintre valoarea ei și cifra minimă.

Exemplu

cifra2.in

736191

cifra2.out

1 
6258 
2

Explicație

a. cifra minimă este 1

b. 73619173696258

c. 6258658436, se continuă 4364613, se continuă 1332.

#include <bits/stdc++.h>

using namespace std;
ifstream fin("cifra2.in");
ofstream fout("cifra2.out");
int main()
{
    int n , ok =0 , cmin = 10;
    fin >> n;
    int x = n;
    while(x != 0)
    {
        if(x % 10 < cmin) cmin = x % 10;
        x /= 10;
    }
    fout << cmin << endl;
    while(n > 9)
    {
        cmin = 10;
        x = n;
        int p = 1;
        while(x != 0)
        {
            if(x % 10 < cmin)
            cmin = x % 10;
            x /= 10;
        }
        x = n;
        n = 0;
        while(x != 0)
        {
            if(x % 10 != cmin)
            {
                n = p *((x % 10) - cmin) + n;
                p *= 10;
            }
            x /= 10;
        }
        if(ok == 0)
        {
            fout << n << endl;
            ok++;
        }
    }
    fout << n;

    fin.close();
    fout.close();

    return 0;
}
Comentarii

S-ar putea sa iti placa