350
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. 736191 → 7369 → 6258
c. 6258 → 658 → 436, se continuă 436 → 46 → 13, se continuă 13 → 3 → 2.
#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